Mueve un rectángulo alrededor de un lienzo

Tengo un lienzo en el medio de mi aplicación con controles a su alrededor. Tengo un socket que recibe puntos y los guarda en una lista.

Dibujo pequeños rectángulos de 4x4 en el lienzo para el número de puntos en mi lista ... digamos que hay 4 puntos ... hay 4 rectángulos.

Quiero poder mover los rectángulos cuando los puntos cambian con el código. ¿Es esto posible sin guiones gráficos o cualquier clase de 'animación'? ¿Y cómo haría para hacer lo que necesito?

Yo he tratado:

        '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)

todo eso pero ninguno hace que los rectángulos se muevan. y sí, me he asegurado de que los datos estén cambiando.

muchas gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta