2014-03-02 43 views
1

我在Canvas中有一個圖像,但是當我使用DoubleAnimation移動它然後使用Canvas.SetLeft(image)時,該方法被忽略,再次移動它的唯一方法是與動畫。 Canvas.SetLeft(control)有什麼不對?設置手動控制屬性在WPF中的動畫之前不起作用

這裏是發生了什麼的圖片說明:

enter image description here

默認硬幣姿勢是0 Canvas.Left財產。

enter image description here

我與下一個代碼的鼠標移動它;

Point p = Mouse.GetPosition(cCoinContainer); 
Canvas.SetLeft(iCoin, p.X); 

enter image description here

而當鼠標離開畫布,動畫移動硬幣到原來Canvas.Left位置。

問題是,當我再這樣做(用鼠標移動的硬幣Canvas.SetLeft(iCoin, p.X);它完全忽略,只適用於動畫。

回答

0

我想你想使圖像可拖動鼠標?如果是正確的; 你應該在矩形上添加一個MouseCapture()以用鼠標動畫更新鼠標位置 並在完成時調用RealeaseMouseCapture;在MouseUp事件 上導致GetMousePosition返回當前鼠標位置一次 祝你好運 如果你需要一些,隨時問!

1

您的問題似乎是在MSDN post關於Animation Tips and Tricks解決的一般問題之一。爲了解決這個問題,嘗試設置動畫的FillBehaviorStop

<Storyboard> 
    <DoubleAnimation 
     FillBehavior="Stop" 
     ...... 
     /> 
</Storyboard> 

通過設置FillBehavior停止,你告訴動畫停止影響其目標屬性達到其活躍期結束後。 [MSDN]

相關問題