我在Canvas
中有一张图片,但是当我使用DoubleAnimation
移动它然后使用Canvas.SetLeft(image)
时,该方法被忽略,再次移动它的唯一方法是动画。 Canvas.SetLeft(control)
有什么问题?
以下是对正在发生的事情的图像的解释:
Canvas.Left
属性中的默认硬币位置为0。
我用鼠标移动下一个代码;
Point p = Mouse.GetPosition(cCoinContainer);
Canvas.SetLeft(iCoin, p.X);
当鼠标离开画布时,动画会将硬币移动到原来的Canvas.Left
位置。
问题是当我再次这样做时(用Canvas.SetLeft(iCoin, p.X);
鼠标移动硬币它完全被忽略,只适用于动画。
答案 0 :(得分:2)
您的问题似乎是关于Animation Tips and Tricks的MSDN帖子中解决的一般问题之一。要解决此问题,请尝试将动画的FillBehavior
设置为Stop
:
<Storyboard>
<DoubleAnimation
FillBehavior="Stop"
......
/>
</Storyboard>
通过将FillBehavior设置为Stop,可以告诉动画在达到活动期间结束后停止影响其目标属性。 [MSDN]
答案 1 :(得分:0)
我想你想用鼠标拖动图像?如果是对的; 你应该在矩形上添加一个MouseCapture()来用鼠标动画更新鼠标位置 并在完成后调用RealeaseMouseCapture;在MouseUp Event 导致GetMousePosition返回当前鼠标位置一次。 祝好运。 如果你需要一些,请随意提问!