在onload上设置焦点在单个textBox上的最简单方法

时间:2014-01-17 09:21:16

标签: c# wpf xaml

根据此链接:Set the focus on a textbox in xaml wpf,可以通过在Focus设置FocusManager并指定elementName来设置StackPanel。我确实试过了,但它确实有效。我想知道如果我的XAML中只有一个文本框而且StackPanel是不必要的,该怎么办?

根据我只有一个文本框的场景,还有其他简单的方法来设置焦点吗?

我也在上面的链接中尝试过第二个答案,但不起作用:

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

2 个答案:

答案 0 :(得分:1)

我过去通过将焦点放在标题中来完成此操作 - 在这种情况下是用户控件,但对于窗口应该是相同的)

<UserControl .....
FocusManager.FocusedElement="{Binding ElementName=TextBoxName}">

答案 1 :(得分:0)

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

<TextBox x:Name="MyTBox" Text="{Binding MyText}" 
       FocusManager.FocusedElement="{Binding ElementName=MyTBox}"/>

这适用于您的情况。