【发布时间】:2014-11-19 21:26:09
【问题描述】:
我正在尝试学习 WPF 和动画。我有一个简单的程序,允许用户使用鼠标移动椭圆。释放鼠标按钮时,椭圆的位置会朝屏幕顶部移动。
这在我第一次抓取椭圆时效果很好。但是第二次我抓住椭圆我不能再改变它的y位置(但我仍然可以改变x位置)。 动画是否会以某种方式删除附加的
Canvas.Top 财产?我该如何解决这个问题?
这是启动动画的代码(位于 MouseUp 处理程序中)
Duration duration = new Duration(TimeSpan.FromSeconds(5.0*oldY/1000));
DoubleAnimation anim = new DoubleAnimation(oldY, 0, duration); // move to top of canvas
_shapeSelected.BeginAnimation(Canvas.TopProperty, anim);
这里是鼠标移动处理程序
private void Canvas_MouseMove_1(object sender, MouseEventArgs e)
{
if (_shapeSelected != null)
{
Point pt = e.GetPosition(theCanvas);
Canvas.SetLeft(_shapeSelected, (pt.X-_posOfMouseOnHit.X) + _posOfShapeOnHit.X );
Canvas.SetTop(_shapeSelected, (pt.Y-_posOfMouseOnHit.Y) + _posOfShapeOnHit.Y );
}
}
【问题讨论】:
标签: c# wpf animation attached-properties