WPF缩放画布内的图像



当我将以下代码放在Window或UserControl中时,图像将以其原始宽度和高度显示。有没有一种方法可以自动将外部画布缩放到包含窗口的比例,同时保留窗口的适当纵横比?

    <Canvas Background="AliceBlue">
        <Canvas.LayoutTransform>
            <ScaleTransform ScaleX="1" ScaleY="1"/>
        </Canvas.LayoutTransform>
        <Image Source="ImageName.jpg" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        <Canvas Canvas.Top="20" Canvas.Left="20" Width="20" Height="20" Background="Salmon"/>
    </Canvas>
画布从不调整其子元素的大小。将图像控件放在网格中,然后可能将整个内容放在Viewbox中:
<Viewbox>
    <Grid>
        <Image Stretch="None" Source="ImageName.jpg" .../>
        <Canvas Margin="20,20,0,0" Width="20" Height="20" Background="Salmon"/>
    </Grid>
</Viewbox>

在ViewBox中包装画布。

最新更新