我是WPF的新手,正在尝试一些简单的东西。我做了一个自定义控件与画布我有一个图像高于画布。当它显示时,它会溢出画布,所以我希望它缩放到父级高度。可能有一个简单的答案,但我还没有找到。
下面是XAML:
<UserControl x:Class="WPFUserControl.Instance"
Name="InstanceBox"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
Width="448" Height="99.2">
<Grid Name="InstanceGrid" Background="White" x:FieldModifier="public" Margin="0,0,0,0.2">
<Canvas>
<Image
HorizontalAlignment="Left"
Source="pack://siteoforigin:,,,/Resources/M-Series-single.jpg" />
</Canvas>
</Grid>
</UserControl>
字符串
3条答案
按热度按时间ttcibm8c1#
如果去掉画布(因为它不测量其子画布),而是使用
Image
的Stretch
属性,那么应该能够获得所需的行为。如果没有,您可以尝试使用ViewBox
。ocebsuys2#
画布不调整查尔兹的大小,所以如果可以的话,你应该把图像放在网格中。如果必须使用画布,则可以将图像的宽度和高度绑定到画布的实际宽度和实际高度。
字符串
e7arh2l63#
1.不要用帆布。
1.可以绑定到网格的ActualHeight属性。
同样的事情可以做宽度