2013-03-01 39 views
1

如果我想在Canvas中移動一個矩形,我需要修改Top和Left屬性嗎?那是我看到它的唯一方法。我正在製作一個基於瓦片的遊戲,我想要移動的矩形充滿了敵人和我的英雄的圖像。如何在Canvas中移動矩形?

+1

附加屬性Canvas.Left和Canvas.Top編輯:http://stackoverflow.com/questions/5913792/wpf-canvas-how-to-add-children-dynamically-with-mvvm-code-behind – kenny 2013-03-01 15:51:19

回答

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

如果您的遊戲基於拼貼,通常您不會移動拼貼。你將有一個固定的網格,你只需要移動內容。例如想象一下棋盤。當一塊從方形A1移動到A7時,您不會將拼塊A1移動到A7,而是將拼塊A1中的拼塊移動到拼塊A7。即使你的瓷磚地圖是可捲動的,你也會想要移動容納瓷磚的柵格而不是單個瓷磚。

您可以使用WPF Grid控件執行此任務,該控件允許您定義行數和列數,並且可以在每個網格單元格內放置圖像控件。然後,每個圖像源可以綁定到模型的各個圖塊。