Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在画布中移动矩形?_C#_Wpf_Canvas - Fatal编程技术网

C# 如何在画布中移动矩形?

C# 如何在画布中移动矩形?,c#,wpf,canvas,C#,Wpf,Canvas,如果要在画布中移动矩形,是否必须修改顶部和左侧属性?这是我认为唯一可能的办法。我正在制作一个基于平铺的游戏,我想要移动的矩形中充满了敌人和我的英雄的图像。你也可以在矩形上使用RenderTransform <Window x:Class="WpfApplication2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://s

如果要在画布中移动矩形,是否必须修改顶部和左侧属性?这是我认为唯一可能的办法。我正在制作一个基于平铺的游戏,我想要移动的矩形中充满了敌人和我的英雄的图像。

你也可以在矩形上使用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>

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


您可以使用WPF网格控件执行此任务,它允许您定义行数和列数n,并且在每个网格单元中可以放置图像控件。然后,可以将每个图像源绑定到模型的各个分幅。

附加属性画布。左侧和画布。顶部编辑: