如果我想在Canvas中移动一个矩形,我是否需要修改Top和Left属性?这是我看到它的唯一方法。我正在制作一个基于平铺的游戏,我想要移动的矩形充满了敌人和我的英雄的图像。
答案 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网格控件执行此任务,该控件允许您定义行数和列数,并且可以在每个网格单元格中容纳图像控件。然后,每个图像源都可以绑定到模型的各个图块。