在一个WPF项目中,窗口加载后我试图使用XAML将焦点设置在文本框上。
我的文本框位于一个网格内。以下是我使用的代码:
<Grid Name="gvLoginPage"
Margin="0,30,0,0"
FocusManager.FocusedElement="{Binding ElementName=txtUserName}">
<TextBox Name="txtUserName"
Focusable="True"
ToolTip="Please enter your user name"
Width="300"
Height="22"
VerticalContentAlignment="Top"
TextWrapping="Wrap"
Grid.Row="0"
Grid.Column="1"
BorderBrush="Black">
<Grid>
这段代码设置了焦点,但是光标没有闪烁,我无法输入任何内容。
后来我遇到了这个问题 获取并恢复WPF键盘焦点 ,其中他解释了有两种焦点,一种是逻辑焦点,另一种是键盘焦点,而 FocusManager.FocusedElement 设置的是逻辑焦点,而不是键盘焦点。因此,我无法得到闪烁的光标。
使用代码解决这个问题:
Keyboard.Focus(txtUserName);
但我希望我的代码尽可能少,因此请有人帮助我使用XAML设置文本框的键盘焦点。