2012-04-14 5 views
1

Ich versuche, zufällige Punkte auf der Leinwand zu generieren. Also möchte ich den zufälligen Punkt auf dem Bildschirm an einen neuen zufälligen Ort bewegen, wenn die Maus ihn berührt. Wie mache ich das?? Dies passiert nicht mit Mausereignissen. Ein Beispiel würde geschätzt werden.Verschieben Sie das zufällige Objekt, wenn die Maus die Position des Punktes erreicht

+5

in welchem ​​Stadium scheitern Sie? kann bitte Code zeigen? – Tigran

+0

Nun, ich versuche, mit diesem Code zu arbeiten http://StackOverflow.com/Questions/3643639/Move-Arectangle-around-a-canvas, aber ich möchte die Position des Rechtecks ​​in eine neue zufällige Position ändern, wenn Maus nähert es oder berührt es – user1221876

+0

Sie müssen die Position ab und zu lesen, z siehe [link] (http://stackoverflow.com/questions/1316681/getting-mouse-position-in-c-sharp) – Casperah

Antwort

1

Nun können Sie MouseMove-Ereignis mit Rechteck anhängen und die zufällige Positionierung des Rechtecks ​​in diesem Ereignis behandeln.

Aktualisiert auf die Antwort in diesem Link Bezug - Move a rectangle around a canvas. Sie müssen aktualisieren Click-Ereignis auf diese Weise hinzufügen -

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

ich das Mousemove-Ereignis mit Rechteck angeschlossen haben, wenn wir es schaffen und dann in diesem Fall das Rechteck zufällig zu bewegen. Hoffe das hilft dir !!

+0

können Sie mit einem Beispiel zeigen ?? – user1221876

Verwandte Themen