2012-04-14 100 views
1

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

+5

你在哪个阶段失败?可以显示一些代码吗? – Tigran 2012-04-14 21:17:50

+0

以及我正在尝试使用此代码http://stackoverflow.com/questions/3643639/move-a-rectangle-around-a-canvas但我想改变矩形的位置到一个新的随机位置,当鼠标靠近或接触它 – user1221876 2012-04-14 21:19:37

+0

你需要偶尔读一下位置,例如看到[链接](http://stackoverflow.com/questions/1316681/getting-mouse-position-in-c-sharp) – Casperah 2012-04-14 21:33:44

回答

1

那么你可以用矩形附加MouseMove事件,并处理这个事件中矩形的随机定位。

更新 参考此链接中的答案 - Move a rectangle around a canvas。您需要更新以这种方式添加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事件。希望这可以帮助你!

+0

你可以显示一个例子? – user1221876 2012-04-15 07:52:24

相关问题