Hallo,
ich habe ein Problem mit Animation und anschließender Fokusierung eines Controls.
Es soll eine Suche von oben per ThicknessAnimation hereingeschoben werden und anschließend das erste Suchfeld fokusiert werden (Control.Focus()). Die Fokusierung funktioniert nicht, wenn diese vor dem Ende der Animation gesetzt wird, sondern erst nach dem Ende der Animation (Storyboard-Completed-Event).
Das Problem dabei ist allerdings, das das Completed-Event erst ca. 2 Sekunden später geworfen wird, nachdem optisch an der Oberläche die Animation bereits beendet ist.
Wie stelle ich es an, dass die Fokusierung bereits direkt nach dem vollständigen Erscheinen des Controls gesetzt wird.
<Storyboard x:Key="OpeningSearch" Completed="Storyboard_Completed" >
<ThicknessAnimation
Storyboard.TargetName="search"
Storyboard.TargetProperty="(local:ucSearch.Margin)"
To="0 0 0 0" Duration="0:0:2" AutoReverse="False">
<ThicknessAnimation.EasingFunction>
<PowerEase Power="30" EasingMode="EaseOut"/>
</ThicknessAnimation.EasingFunction>
</ThicknessAnimation>
</Storyboard>
Vielen Dank im Voraus.
Wenn das Suchfeld nicht ausgeblendet ist, dann sollte es auch vor oder während der Animation fokusierbar sein.
Versuche mal, ein Minimal-Projekt zu erstellen, das nur die Animation und die Fokussierung beinhaltet. Dann kannst du den kompletten Code hier posten, und man kann es selbst ausprobieren.
Weeks of programming can save you hours of planning