Verschieben Sie ein Rechteck um eine Leinwand

Ich habe in der Mitte meiner Anwendung eine Zeichenfläche mit Steuerelementen. Ich habe einen Socket, der Punkte empfängt und in einer Liste speichert.

Ich zeichne kleine 4x4-Rechtecke auf die Leinwand für die Anzahl der Punkte in meiner Liste. Sagen wir, es gibt 4 Punkte. Es gibt 4 Rechtecke.

Ich möchte die Rechtecke verschieben können, wenn sich die Punkte mit dem Code ändern. Ist dies ohne Storyboards oder Animationsklassen möglich? und wie würde ich tun, was ich brauche?

Ich habe versucht

        'cMap.Children.Remove(r)

        'Dim nr As Rectangle = New Rectangle() With {.Width = 4, .Height = 4, .Name = "r" & P.Name, .Fill = Brushes.Red}
        'r.RenderTransform = New TranslateTransform(P.Position.X, P.Position.Y)

        Canvas.SetTop(cMap.Children(cMap.Children.IndexOf(r)), (512 / 2) + P.Position.Y)
        Canvas.SetLeft(cMap.Children(cMap.Children.IndexOf(r)), (512 / 2) + P.Position.X)
        'nr.SetValue(Canvas.TopProperty, (512 / 2) + P.Position.Y)
        'nr.SetValue(Canvas.LeftProperty, (512 / 2) + P.Position.X) ' P.Position.X)
        'cMap.Children.Add(nr)

Alle diese aber keine bewegen die Rechtecke. und ja ich habe dafür gesorgt, dass sich die daten ändern.

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage