当我将以下代码放在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>
答案 0 :(得分:1)
将您的画布包裹在ViewBox。
中答案 1 :(得分:1)
Canvas永远不会调整其子元素的大小。将Image控件放在Grid中,然后可能将整个内容放在Viewbox中:
<Viewbox>
<Grid>
<Image Stretch="None" Source="ImageName.jpg" .../>
<Canvas Margin="20,20,0,0" Width="20" Height="20" Background="Salmon"/>
</Grid>
</Viewbox>