我有一个Canvas,我将Background属性设置为由Image组成的VisualBrush。我正在将“画布的宽度和高度”绑定到“图像的宽度和高度”上。这是XAML:
<Canvas x:Name="imageCanvas" ClipToBounds="True" Width="{Binding ActualWidth, ElementName=dataImage}" Height="{Binding ActualHeight, ElementName=dataImage}"
Loaded="imageCanvas_Loaded" MouseMove="imageCanvas_MouseMove">
<Canvas.Background>
<VisualBrush Stretch="Uniform">
<VisualBrush.Visual>
<Image x:Name="dataImage" ClipToBounds="True" RenderOptions.BitmapScalingMode="HighQuality" Stretch="Uniform" Source="{Binding DataImage, Mode=OneWay}" LayoutTransform="{Binding DataImageLayoutTransform, Mode=OneWay}"/>
</VisualBrush.Visual>
</VisualBrush>
</Canvas.Background>
</Canvas>
请注意,Image正在使用LayoutTransform。我正在使用它来拉伸图像的宽度。如果我禁用LayoutTransform绑定并运行,则会得到以下(正确的)渲染输出:
但是,当我添加LayoutTransform以将图像的宽度拉伸6倍时,图像看起来可以正确拉伸,但是它太小,即不能均匀地填充Canvas:
我怀疑这可能与将“画布高度/宽度”绑定到图像高度宽度有关,但是尚不清楚确切的问题是什么。谁能提供一些见识?预先谢谢你。