WPF. Manière la plus facile de déplacer l'Image de (X,Y) par programmation?

Personne ne sait d'une manière facile à animer d'un mouvement à partir d'une Image de l'emplacement actuel vers un nouvel emplacement (X,Y) à l'aide de WPF animation sans XAML, 100% par programmation? Et sans référence à "ce" (avec RegisterName etc).

Je suis en train de faire une extension de la classe de l'Image pour faire de l'animation des trucs sur elle. Il est assez facile de modifier la largeur et la hauteur de propriétés à travers l'animation, mais après la recherche de l'emplacement de l'animation d'un objet, il devient tout à coup plus avancé.

Que c'est une extension de la classe, je vais seulement avoir une référence à l'Image réelle de l'objet et le X et le Y, je veux le déplacer.

public static void MoveTo(this Image targetControl, double X, double Y, double Width, double Height){
 //code here
 ...
}

Mise à jour:

Grâce. Près de de travail. Il semble que Le GetTop et GetLeft renvoie 'NaN' pas explicitement définie. Trouvé la solution dans ce post: Toile.GetTop() pour retourner NaN

public static void MoveTo(this Image target, double newX, double newY) {
                Vector offset = VisualTreeHelper.GetOffset(target);
                var top = offset.Y;
                var left = offset.X;
                TranslateTransform trans = new TranslateTransform();
                target.RenderTransform = trans;
                DoubleAnimation anim1 = new DoubleAnimation(0, newY - top, TimeSpan.FromSeconds(10));
                DoubleAnimation anim2 = new DoubleAnimation(0, newX - left, TimeSpan.FromSeconds(10));
                trans.BeginAnimation(TranslateTransform.YProperty, anim1);
                trans.BeginAnimation(TranslateTransform.XProperty, anim2);
        }

J'ai eu à échanger deux valeurs (DE) avec 0. Je suppose que ce doit être parce que, dans ce contexte, le coin supérieur gauche de l'image est à l'origine? Mais maintenant ça fonctionne.

Merci pour la mise à jour. C'était agréable de voir un exemple de comment utiliser un Vecteur.
Mise à jour de votre code fonctionne vraiment sympa ! Merci beaucoup pour votre excellence !

OriginalL'auteur Wolf5 | 2010-11-18