97 votes

Définir le focus sur une zone de texte dans xaml wpf

Malgré certains messages sur ce forum et d'autres, je ne trouve pas quelque chose qui me dise comment définir le focus sur TextBox .

J'ai un userControl avec beaucoup d'étiquettes et textBoxes. Lorsque le formulaire est chargé, je souhaite que la zone de texte ait le focus.

J'ai mis le tabIndex mais cela n'a pas semblé fonctionner.

Aucune suggestion?

187voto

Julien Lebosquain Points 20894

Vous pouvez utiliser la propriété attachée FocusManager.FocusedElement à cette fin. Voici un morceau de code qui définit le focus sur TxtB par défaut.

 <StackPanel Orientation="Vertical" FocusManager.FocusedElement="{Binding ElementName=TxtB}">
    <TextBox x:Name="TxtA" Text="A" />
    <TextBox x:Name="TxtB" Text="B" />
</StackPanel>
 

Vous pouvez également utiliser TxtB.Focus() dans votre code-behind si vous ne souhaitez pas le faire dans XAML.

26voto

Max Points 308

Vous pouvez appliquer cette propriété directement sur la zone de texte:

 <TextBox Text="{Binding MyText}" FocusManager.FocusedElement="{Binding RelativeSource={RelativeSource Self}}"/>
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X