gpt4 book ai didi

wpf 使用 xaml 将键盘焦点设置在文本框上

转载 作者:行者123 更新时间:2023-12-03 00:26:06 28 4
gpt4 key购买 nike

在 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>

这段代码正在设置焦点,但光标没有闪烁,我无法输入任何内容。

然后我遇到了这个问题Get and restore WPF keyboard focus他解释说有两种类型的焦点,一种是逻辑焦点,另一种是键盘焦点,而 FocusManager.FocusedElement 设置逻辑焦点而不是键盘焦点。所以我无法获得闪烁的光标。

使用后面的代码我可以使用

解决这个问题
Keyboard.Focus(txtUserName);

但我想尽可能少地保留我的代码。所以请有人帮助我使用 xaml 将键盘焦点设置在文本框上。

最佳答案

根据@olitee的评论,我使用gridview的IsVisible属性来触发DataTrigger并将Focusmanager.FocusedElement设置为我的Textbox。这里是代码

<Style x:Key="trgFocus" TargetType="TextBox">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=gvLoginPage, Path=IsVisible}" Value="true">
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=txtUserName}" />
</DataTrigger>

</Style.Triggers>

现在我的光标开始闪烁。谢谢@olitee 和@Palak

关于wpf 使用 xaml 将键盘焦点设置在文本框上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31516655/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com