如何在 StackPanel 上禁用选项卡停靠

18

我有一个StackPanel,在应用程序中通过Tab键切换时会不断获得焦点。

使用Snoop工具,我发现这个StackPanel包含一个ContentControl,而ContentControl又包含一个ContentPresenter。实际上是ContentControl获取了焦点。如何禁用这种行为?这是默认行为吗?


1
一个 StackPanel 如果没有设置 Focusable="True"(默认为 False),就不能获取焦点。这个 StackPanel 是在哪里,是在 Window/UserControl 中还是在 ItemsControl 中? - Fredrik Hedblad
1
当您在ContentControl上设置Focusable="False"会发生什么? - Kyeotic
2个回答

26

这不是默认行为,如果它已被某些资源覆盖,则可以使用

重置它。

KeyboardNavigation.IsTabStop="False"

或者...

FocusManager.IsFocusScope="False"

11
这两种方法有什么区别? - Drew Noakes
“FocusManager.IsFocusScope =”False“” 对我没用,但“KeyboardNavigation.IsTabStop =”False“”有效。 - Tyson Williams

10

曾经遇到过一个使用StackPanel作为容器的DataTemplate问题,该DataTemplate用于ListBox项。 尝试了各种建议都无法阻止项接收Tab键控制,直到我在实际的listbox上使用了以下方法:

KeyboardNavigation.TabNavigation="None"

1
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Pollitzer
1
你如何在UWP中实现这个?它说“不支持”。 - Nilzor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接