Laden...

Wie kann ich die Fokusierung bereits direkt nach dem vollständigen Erscheinen des Controls setzen?

Erstellt von Jack19 vor 5 Jahren Letzter Beitrag vor 5 Jahren 751 Views
J
Jack19 Themenstarter:in
2 Beiträge seit 2019
vor 5 Jahren
Wie kann ich die Fokusierung bereits direkt nach dem vollständigen Erscheinen des Controls setzen?

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.

5.658 Beiträge seit 2006
vor 5 Jahren

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