如何在画布中移动矩形?

时间:2013-03-01 15:47:51

标签: c# wpf canvas

如果我想在Canvas中移动一个矩形,我是否需要修改Top和Left属性?这是我看到它的唯一方法。我正在制作一个基于平铺的游戏,我想要移动的矩形充满了敌人和我的英雄的图像。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

如果您的游戏通常是基于图块的,则不会移动图块。你会有一个固定的瓷砖网格,你只需要移动内容。例如,想象一下国际象棋棋盘。当一块从方形A1移动到A7时,你没有将方块A1移动到A7,而是将方块A1中的块移动到方块A7。即使您的磁贴地图是可滚动的,您也希望移动包含磁贴的网格而不是单个磁贴。

您可以使用WPF网格控件执行此任务,该控件允许您定义行数和列数,并且可以在每个网格单元格中容纳图像控件。然后,每个图像源都可以绑定到模型的各个图块。