WPF. Einfachste Möglichkeit zum verschieben von Bild (X,Y) programmgesteuert?

Kennt jemand eine einfache Möglichkeit zu animieren, eine Bewegung aus einem Bild der aktuellen Position zu einer neuen Position (X,Y) mit WPF-animation ohne XAML, 100% programmgesteuert? Und ohne Bezug zu "diesem" (mit RegisterName etc).

Ich versuche, eine Erweiterung der Klasse für Bild zu tun, animation Sachen drauf. Es ist leicht genug, um zu ändern der Eigenschaften width und height durch die animation, sondern nach der Suche nach der location-animation von einem Objekt, das es plötzlich mehr erweitert wird.

Als es ist eine Erweiterung der Klasse I wird nur ein Verweis auf das eigentliche Bild-Objekt und die X-und Y-ich möchte um es zu verschieben.

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

Update:

Dank. Fast arbeiten. Es scheint, Die GetTop und GetLeft gibt 'NaN' nicht explizit festgelegt. Finden Sie die Problemumgehung in diesem post: Canvas.GetTop() gibt 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);
        }

Musste ich tauschen Sie zwei der Werte (AB) mit 0. Ich gehe davon aus, dass sein muss, weil in diesem Zusammenhang der oberen linken Ecke des Bildes ist der Ursprung? Aber jetzt funktioniert es.

Vielen Dank für das update. Es war schön zu sehen, ein Beispiel, wie ein Vektor.
Ihre aktualisierte code funktioniert wirklich schön ! Vielen Dank für Ihre excellence !

InformationsquelleAutor Wolf5 | 2010-11-18

Schreibe einen Kommentar