我有一个StackPanel,在应用程序中通过Tab键切换时会不断获得焦点。
使用Snoop工具,我发现这个StackPanel包含一个ContentControl,而ContentControl又包含一个ContentPresenter。实际上是ContentControl获取了焦点。如何禁用这种行为?这是默认行为吗?
我有一个StackPanel,在应用程序中通过Tab键切换时会不断获得焦点。
使用Snoop工具,我发现这个StackPanel包含一个ContentControl,而ContentControl又包含一个ContentPresenter。实际上是ContentControl获取了焦点。如何禁用这种行为?这是默认行为吗?
这不是默认行为,如果它已被某些资源覆盖,则可以使用
重置它。KeyboardNavigation.IsTabStop="False"
或者...
FocusManager.IsFocusScope="False"
曾经遇到过一个使用StackPanel作为容器的DataTemplate问题,该DataTemplate用于ListBox项。 尝试了各种建议都无法阻止项接收Tab键控制,直到我在实际的listbox上使用了以下方法:
KeyboardNavigation.TabNavigation="None"
StackPanel
如果没有设置Focusable="True"
(默认为False
),就不能获取焦点。这个StackPanel
是在哪里,是在Window
/UserControl
中还是在ItemsControl
中? - Fredrik HedbladFocusable="False"
会发生什么? - Kyeotic