当鼠标到达点的位置时移动随机对象

时间:2012-04-14 21:13:17

标签: c# wpf random mouseevent mousehover

我试图在画布上生成随机点。因此,当鼠标触摸它时,我希望屏幕上的随机点移动到新的随机位置。我该怎么做呢??任何鼠标事件都不会发生这种情况。一个例子将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以使用矩形附加MouseMove事件,并在此事件中处理矩形的随机定位。

<强>更新 请参阅此链接中的答案 - Move a rectangle around a canvas。您需要以这种方式更新Add Click事件 -

    private void Add_Click(object sender, RoutedEventArgs e)
    {
        Point newPoint;
        Rectangle rectangle;

        newPoint = GetRandomPoint();
        rectangle = new Rectangle {Width = 4, Height = 4, Fill = Brushes.Red};
        rectangle.MouseMove += new MouseEventHandler(rectangle_MouseMove);
        m_Points.Add(newPoint);
        PointCanvas.Children.Add(rectangle);
        Canvas.SetTop(rectangle,newPoint.Y);
        Canvas.SetLeft(rectangle,newPoint.X);
    }

    void rectangle_MouseMove(object sender, MouseEventArgs e)
    {
        Rectangle rectangle = sender as Rectangle;
        Point newPoint;
        newPoint = GetRandomPoint();
        Canvas.SetTop(rectangle, newPoint.Y);
        Canvas.SetLeft(rectangle, newPoint.X);
    }

我在创建它时附加了带矩形的MouseMove事件,然后在此事件中随机移动矩形。希望这可以帮助你!!