2009-07-03 10 views
1

Je voudrais mettre l'accent sur un TextBox dans mon contenu de document personnalisé dans WPF. J'ai mis tous ces paramètres focalisables à vrai. Pourtant, l'accent n'est pas sur le TextBox. Une pensée ou un commentaire?Problème avec TextBox Focus dans WPF

Jusqu'à présent, j'ai ajouté ces:

textbox.Focus(); 
textbox.SelectAll(); 

au constructeur de ma page WPF.

Le TextBox est dans un Canvas dans un DockPanel, et tous font partie d'un custom:DocumentContent.

vous remercie à l'avance,

Répondre

6

Jetez un oeil à this blog post et à l'article MSDN Focus Overview. De votre question, il semble que vous essayez de mettre l'accent dans le constructeur. Les éléments de l'interface utilisateur n'ont pas été créés à ce stade. Vous devez définir le focus pendant l'événement Loaded de votre contrôle.

+0

Vous avez signalé un problème très important: les éléments de l'interface utilisateur n'ont pas été créés au niveau du constructeur. J'ai aussi essayé avec ça, mais pas encore de focus. Maintenant, j'ai une autre question, est-ce important si j'appelle textbox.Focus() dans différents endroits comme le constructeur et le chargement des événements, et même sur le XAML lui-même? merci private void Document_Loaded (expéditeur d'objet, RoutedEventArgs e) { textbox.Focusable = true; textbox.Focus(); } – paradisonoir

+0

vous avez raison, j'ai ajouté à la "chargé" de la zone de texte lui-même, et cela a fonctionné. Je pensais, si je l'ajoute à la coutume: DocumentContent, cela aiderait, mais je devais l'ajouter à la boîte de texte elle-même. Merci pour la réponse. – paradisonoir

1

Cela devrait fonctionner. Vérifiez si textbox.Focus() renvoie vrai, il vous dira si l'appel a fonctionné. En outre, essayez d'appeler textbox.Focus() à partir de l'événement Loaded de Window/Page.