根据此链接: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}}"/>
答案 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}"/>
这适用于您的情况。