gpt4 book ai didi

wpf - 复选框失去焦点与 FocusManager.IsFocusScope ="True"

转载 作者:行者123 更新时间:2023-12-04 21:54:43 25 4
gpt4 key购买 nike

我看到我的 CheckBox 出现奇怪的行为及其焦点/选项卡顺序。

首先是一些“工作”代码:

<Grid>    
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Button Grid.Row="0" Width="100" Height="25"/>
<TabControl Grid.Row="1" >
<!--TabItem Header="tabItem1" Name="tabItem1"-->
<TabItem Header="tabItem1" Name="tabItem1" FocusManager.IsFocusScope="True">
<ScrollViewer>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>

<TextBox Grid.Row="0" />
<TextBox Grid.Row="1"/>
<CheckBox Grid.Row="2" Content="Test" />
<TextBox Grid.Row="3"/>
</Grid>
</ScrollViewer>
</TabItem>
</TabControl>
</Grid>

如果您尝试此操作,则 Tab 键顺序可以正常工作 - 只要您不选中 CheckBox。如果我选中 CheckBox 它会失去焦点,并且下一个 Tab 按下会将焦点设置为 Button。

如果我删除 FocusManager.IsFocusScope="True"一切正常。

我的问题是这种行为是想要的还是错误的?

最佳答案

这种行为在某种程度上是预料之中的。为了修复它,您可以在窗口上为 GotFocus 添加一个处理程序。

假设您的复选框名为 chkBox,如下所示:

protected override void OnGotKeyboardFocus(KeyboardFocusChangedEventArgs e)
{
base.OnGotKeyboardFocus(e);

if (e.Source == chkBox)
FocusManager.SetFocusedElement(this, chkBox);

}

这个问题和一些类似的问题在 this msdn thread 中有更详细的讨论。 .

关于wpf - 复选框失去焦点与 FocusManager.IsFocusScope ="True",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14275235/

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