I'm trying to show the following, depending on the shape of the image (the blue block):
I'm having a few problems:
- The image stretch should be constrained to its available area, determined by the window borders and the top of the text box (which takes as many rows as needed, with a fixed character size, and stretches and wraps horizontally). Instead it stretches to width and disregards the top of the window as a constraint.
Below approximately 500 width, the image stops scaling down, disregarding the right edge of the window as a constraint; the text acts similarly as it stops wrapping at this point.(nevermind, the parent of the StackParent hadMinWidth="500")Starting height should be such that if the image is "wide", there should be no extra margin above or below it - otherwise a percentage of screen height. I don't know how to accomplish both at the same time.(moved to WPF - access SizeToContent dimensions without using it? )
Window attributes:
WindowStartupLocation="Manual"
Top="100"
Left="100"
Width="700"
SizeToContent="Height"
ResizeMode="CanResize"
MaxWidth="{x:Static SystemParameters.PrimaryScreenWidth}"
MaxHeight="{x:Static SystemParameters.PrimaryScreenHeight}"
Image, text and buttons:
<StackPanel VerticalAlignment="Bottom" Margin="10">
<Image Name="IW" VerticalAlignment="Center" Source="{Binding Image}" />
<TextBlock Margin="0,10,0,10" HorizontalAlignment="Stretch" Background="{StaticResource Container2}">
<TextBlock Margin="10" TextWrapping="Wrap" FontSize="{Binding FontSize}" Foreground="{StaticResource PrimaryText}" Background="{StaticResource Container2}" Text="{Binding Text}"/>
</TextBlock>
<StackPanel Orientation="Horizontal" Width="auto" HorizontalAlignment="Right">
<Button Visibility="{Binding YesVisibility}" x:Name="YES" Margin="0,0,20,0" Height="40" Width="150" FontSize="22" FontWeight="DemiBold" Content="YES" Foreground="{StaticResource CTAPrimary2}" Click="Button_Click"/>
<Button Visibility="{Binding NoVisibility}" x:Name="NO" Margin="0,0,20,0" Height="40" Width="150" FontSize="22" FontWeight="DemiBold" Content="NO" Foreground="{StaticResource CTAPrimary2}" Click="Button_Click"/>
<Button Visibility="{Binding ContinueVisibility}" x:Name="CONTINUE" Margin="0,0,20,0" Height="40" Width="150" FontSize="22" FontWeight="DemiBold" Content="CONTINUE" Foreground="{StaticResource CTAPrimary2}" Click="Button_Click"/>
<Button Visibility="{Binding ExitVisibility}" x:Name="EXIT" Margin="0,0,0,0" Height="40" Width="150" FontSize="22" FontWeight="DemiBold" Content="EXIT" Foreground="{StaticResource PrimaryText}" Click="Button_Click"/>
</StackPanel>
</StackPanel>

Use a Grid as top level layout Panel: