WPF技术求助:如何实现图片自适应适配指定区域
需求与问题
我希望根据图片(蓝色块)的形状实现如下展示效果:
目前遇到以下几个问题:
- 图片的拉伸应受限于可用区域(由窗口边框和文本框顶部决定,文本框会根据需要占用多行,字符大小固定,支持水平拉伸和换行),但当前图片仅拉伸宽度,忽略了窗口顶部的约束。
当窗口宽度小于约500时,图片停止缩小,忽略了窗口右边缘的约束;文本也类似,此时停止换行。(已解决,StackParent的父容器设置了MinWidth="500")初始高度应满足:若图片为宽幅,则上下无额外边距;否则按屏幕高度的百分比设置。我不知道如何同时实现这两点。(该问题已迁移至其他提问)
窗口属性
WindowStartupLocation="Manual" Top="100" Left="100" Width="700" SizeToContent="Height" ResizeMode="CanResize" MaxWidth="{x:Static SystemParameters.PrimaryScreenWidth}" MaxHeight="{x:Static SystemParameters.PrimaryScreenHeight}"
图片、文本及按钮的XAML代码
<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>
内容的提问来源于stack exchange,提问作者H.v.M.
相关产品推荐
相关产品推荐

