Warum funktionieren diese Animationen nicht, wenn ich ein Storyboard verwende?

8

Ich habe eine einfache Unterklasse von StackPanel erstellt, die ich mit einem animierten TranslateTransform auf dem Bildschirm bewegen kann. Es sieht so aus:

%Vor%

Und hier ist mein Problem: Wenn ich die X- und Y-Eigenschaften direkt animiere, wie der obige Code, funktioniert es. Aber wenn ich den auskommentierten Code darüber verwende, was wirklich die einfachste Erstellung eines Storyboard im Code ist, passiert nichts. Die Animation wird ausgeführt - mindestens wird das Completed-Ereignis ausgelöst, aber auf dem Bildschirm ändert sich nichts.

Klar mache ich etwas falsch, aber ich kann nicht sehen, was es ist. Jedes Beispiel zum Erstellen von Storyboards in Code, die ich gesehen habe, sieht genau so aus. Es gibt offensichtlich etwas über Animationen und Storyboards, die ich noch nicht kenne: Was ist das?

    
Robert Rossney 26.02.2010, 00:33
quelle

2 Antworten

10

Wie sich herausstellt, können Sie in diesem Fall keine Syntax für den Eigenschaftenpfad verwenden, da die animierten Eigenschaften keine Eigenschaften von FrameworkElement sind. Zumindest interpretiere ich die bemerkenswert verwirrende Ausnahme, die ich bekomme, wenn ich die von Anvaka vorgeschlagene Änderung mache:

%Vor%

Um diese zu animieren, muss ich ein NameScope verwenden und SetTargetName verwenden, um TransformElement zu benennen. Solange das FrameworkElement übergeben wird, für das ich den Namensumfang auf die Methode Begin festgelegt habe, kann das Storyboard das Objekt und die Eigenschaften finden und animieren und alles funktioniert. Das Endergebnis sieht so aus:

%Vor%     
Robert Rossney 26.02.2010, 08:35
quelle
7

Es ist die Eigenschaftspfad -Syntax. Der folgende Ansatz funktioniert:

%Vor%     
Anvaka 26.02.2010 07:05
quelle

Tags und Links