2012-04-14 160 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

相關問題