我想在我正在制作的基于图块的游戏中将图像放在某个图块的顶部。问题是,当我生成随机地图时,当绘制 Canvas 的 Rectangle 子项时,它会在 Image 上绘制。我通过将图像作为窗口外部网格的一部分解决了这个问题。问题是当我想将图像放置在画布内的某个矩形上时,坐标关闭,因为网格大于画布。如何将图像边距限制为仅画布的边距(画布边界作为限制)而不是网格边界作为限制?
例如,为图像赋予 Margin.Left = 50 的值会将其放置在画布中的最佳位置,但由于其比例较大,它将被放置在网格中的不同位置。
// Image displays, but does not display when I add child Rectangles to the Canvas
<Canvas Height="700" HorizontalAlignment="Left" Name="canvas1" VerticalAlignment="Top" Width="700">
<Image Name="heroImage" Stretch="Fill" Source="hero.png" Height="74" Canvas.Left="558" Canvas.Top="602" />
</Canvas>
<Grid>
<Canvas Height="700" HorizontalAlignment="Left" Name="canvas1" VerticalAlignment="Top" Width="700">
// Removed the Image
</Canvas>
// Placed the Image outside the Canvas, but now it will draw according to the Grid's Margin limits and not the Canvas Margin limits
<Image Name="heroImage" Stretch="Fill" Source="hero.png" Height="74" Canvas.Left="558" Canvas.Top="602" />
</Grid>
画布内的图像,完美定位
网格中的图像,由于我使用 Canvas Margin 坐标而放置错误