Frage

Ich habe eine einfache WPF-Anwendung, die ein Benutzersteuerelement enthält, die in und aus durch ein Paar von Storyboards auf dem Hauptfenster animiert wird. Ich bin Animieren der Undurchsichtigkeit des Benutzers Kontrolle, scaletransform.scalex und scaletransform.scaley Pop es in und aus der Sicht. Es sieht cool aus mit Ausnahme des ersten Mal ausgeführt wird. Die Animation wird 3/10 einer Sekunde zu nehmen, obwohl ich dies bei meinen Tests erhöht haben. Ich habe versucht, einen Standardwert bei einem Bruchteil einer Sekunde in Einstellung zu sehen, ob es ein Problem gibt, wo die Werte der Eigenschaften Ich Animiere nicht wie erwartet in Verzug. Das tat nichts. Ich habe sogar ausdrücklich meine „verstecken“ Animation auf Fenster, um zu sehen geladen nennen, wenn dies würde mir meine Standardwerte gesetzt helfen, aber das hat nicht funktioniert entweder. Gibt es eine Initialisierung, die die Laufzeit das erste Mal tut mir die Animation Feuer? Gibt es eine Weise, die ich ausdrücklich diese Art von Initialisierung vor zeigt die Benutzeroberfläche aufrufen können? Das Symptom ist, dass die Steuerung bis etwa 2/10 Sekunden in die erste Animation nicht einmal sichtbar ist. Manchmal länger es ist und die Steuerung zeigt, nachdem es wurde voll animiert (Opazität und Größe sind ihre endgültigen Werte, wenn es schließlich zeigt nach oben).

War es hilfreich?

Lösung

Es klingt wie Sie die Datacontext des Usercontrol direkt vor der Animation sind einstellen. Vermutlich gehen Sie Bindung auf, die visuelle Objekte zu schaffen und sie zu der visuellen Struktur zugleich das Hinzufügen der Animation soll starten. Dies erfordert die Verarbeitung, die die Animation für kämpft. Die Art und Weise, dies zu vermeiden, ist die Steuerung instanziiert haben (mit Datacontext-Set), aber versteckt, so dass die visuelle Objekterstellung muss nicht zum Zeitpunkt der Animation durchgeführt werden. (Über meinen Mitarbeiter Tim Lee)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top