1

如果我想在 Canvas 中移动一个矩形,我是否必须修改 Top 和 Left 属性?那是我认为可能的唯一方法。我正在制作一个基于图块的游戏,我想要移动的矩形充满了敌人和我的英雄的图像。

4

2 回答 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 回答