WPF鼠标平滑移动问题

时间:2015-07-18 22:48:12

标签: wpf canvas mouse mousemove

我尝试根据鼠标移动在画布上绘制椭圆。 我使用鼠标移动事件并获取鼠标点位置X和Y,并在画布内的新位置找到elippse。所有这一切都很完美,我得到了非常光滑的椭圆运动。

但是,如果我改变了我所获得的位置的价值(见下面的代码)。向下移动鼠标时,我的smoth问题非常严重。椭圆大约是椭圆大小的大小。 只有当值大约是椭圆大小时,它才会变亮; 我猜这是由于画布中的旧椭圆(有点:椭圆跳过它自己)。 这是我的代码:

 private void MainArea_MouseMove(object sender, MouseEventArgs e)
    {

        Point position = e.GetPosition( canvas);

        //position.X -= 15 ;    // this line couse the problem

        Canvas.SetLeft(PlayerEllipse, position.X);
        Canvas.SetTop(PlayerEllipse, position.Y);
    }

寻找解决方案

1 个答案:

答案 0 :(得分:0)

解决了 - 我发现我还需要再构建一个MouseMove处理程序。对于椭圆本身。 当我的鼠标在椭圆上时,事件与椭圆相关,而不是与容器MainArea相关。见下文

myEllipse.MouseMove += new MouseEventHandler(myEllipse_MouseMove);



private void myEllipse_MouseMove(object sender, MouseEventArgs e)
    {
        MainArea_MouseMove(sender, e);
    }