如何移動Silverlight矩形?如何以編程方式簡單移動Silverlight矩形?有沒有簡單的X/Y使用
我想說rect1.X ++移動一個矩形作爲一個定時器事件被激活......很容易改變高度像rect1.Height ++;
有沒有一些簡單的方法來做到這一點,而不必處理複雜的矩陣?
如何移動Silverlight矩形?如何以編程方式簡單移動Silverlight矩形?有沒有簡單的X/Y使用
我想說rect1.X ++移動一個矩形作爲一個定時器事件被激活......很容易改變高度像rect1.Height ++;
有沒有一些簡單的方法來做到這一點,而不必處理複雜的矩陣?
您需要使用TranslateTransform移動元素:
<Rectangle Width="50" Height="50" HorizontalAlignment="Left" VerticalAlignment="Top" Fill="Red">
<Rectangle.RenderTransform>
<TranslateTransform x:Name="myTranslateTransform" />
</Rectangle.RenderTransform>
</Rectangle>
然後,您可以在代碼中引用:
myTranslateTransform.X = 30;
myTranslateTransform.Y = 100;
然而,「正確」的方式(也可以做這樣其他的事情喜歡動畫的翻譯)是設置了轉換的VisualStateManager和使用值而不是直接像上面那樣操縱代碼中的值。
如果在畫布上,請設置Canvas.LeftProperty
和Canvas.TopProperty
值。下面是從我的項目之一,可謂物美價廉,移動(矩形)腳:
// at startup:
_rightFoot = new Rectangle();
_myCanvas.Children.Add(_rightFoot);
// during animation cycle:
_rightFoot.SetValue(Canvas.LeftProperty, _xRight - _footWidth/2);
_rightFoot.SetValue(Canvas.TopProperty, _yRight - _footHeight/2);
謝謝。似乎是一種不用我猜測的XAML來做同樣的事情的方法。 – punkouter 2010-12-09 22:21:36
謝謝。這樣可行。 – punkouter 2010-12-09 22:20:33