如果我想在 Canvas 中移动一个矩形,我是否必须修改 Top 和 Left 属性?那是我认为可能的唯一方法。我正在制作一个基于图块的游戏,我想要移动的矩形充满了敌人和我的英雄的图像。
问问题
1010 次
2 回答
1
您还可以在矩形上使用 RenderTransform。
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Canvas>
<Rectangle Width="10" Height="10" Fill="Red">
<Rectangle.RenderTransform>
<TranslateTransform X="10" Y="10"/>
</Rectangle.RenderTransform>
</Rectangle>
</Canvas>
</Window>
于 2013-03-01T15:49:52.800 回答
1
如果您的游戏通常基于图块,则您不会移动图块。您将有一个固定的瓷砖网格,您只需移动内容。例如,想想棋盘。当一个棋子从正方形 A1 移动到 A7 时,您并没有将 A1 移动到 A7,而是将 A1 中的棋子移动到 A7。即使您的瓦片地图是可滚动的,您也希望移动包含瓦片的网格而不是单个瓦片。
您可以为此任务使用 WPF Grid 控件,它允许您定义行数和列数,并且在每个网格单元格中您可以容纳一个图像控件。然后可以将每个图像源绑定到模型的各个图块。
于 2013-03-01T15:58:30.350 回答