2012-04-14 18 views
1

キャンバス上にランダムな点を生成しようとしています。だから私はマウスがそれに触れると、新しいランダムな場所に移動するために画面上のランダムなポイントにしたい。私はこれをどのようにするのですか?これは、マウスイベントのいずれにも起こっていません。例が分かるだろう。マウスがポイントの位置に来たときにランダムオブジェクトを移動する

+5

どの段階で失敗するのですか?いくつかのコードを表示できますか? – Tigran

+0

よく私はこのコードで作業しようとしていますhttp://stackoverflow.com/questions/3643639/move-a-rectangle-around-a-canvasしかし、私は新しいランダムな位置にマウスの位置に矩形の位置を変更したいそれに近づくか触れる – user1221876

+0

あなたはしばらくの間、その位置を読む必要があります。 [リンク](http://stackoverflow.com/questions/1316681/getting-mouse-position-in-c-sharp)を参照してください – Casperah

答えて

1

MouseMoveイベントを四角形で結び、このイベントで四角形のランダムな配置を処理できます。

このリンクの回答 - Move a rectangle around a canvasを参照してください。あなたは、このようにClickイベントを追加更新する必要がある - 私たちはそれを作成し、このイベントにランダムに矩形を移動するとき、私は長方形でMouseMoveイベントを添付している

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); 
    } 

。これがあなたを助けることを願って!

+0

例と一緒に表示できますか? – user1221876

関連する問題