作成中のタイル ベースのゲームで、特定のタイルの上に画像を配置したいと考えています。問題は、ランダム マップを生成するときに、Canvas の Rectangle の子が描画されるときに、Image の上に描画されることです。ウィンドウの外側のグリッドのイメージ部分を作成することで、この問題を解決しました。問題は、キャンバス内の特定の長方形に画像を配置したい場合、グリッドがキャンバスよりも大きいため、座標がオフになることです。制限としてのグリッドの境界ではなく、画像の余白をキャンバス (制限としてのキャンバスの境界) のみに制限するにはどうすればよいですか?
たとえば、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 座標を使用したため、グリッド内の画像が間違って配置されました