Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF焦点导航包装_Wpf_Navigation_Focus - Fatal编程技术网

WPF焦点导航包装

WPF焦点导航包装,wpf,navigation,focus,Wpf,Navigation,Focus,有没有办法强制焦点导航(由Tab键或MoveFocus方法控制)在给定容器内换行?我在下面包含了演示此问题的代码。让选项卡将焦点从TextBox“Charlie”移动到TextBox“Able”(对于TextBox上的Shift+Tab“Able”),而不是将其移动到MenuItem“Alpha”,最简单的方法是什么 使用Ke附加属性,如下所示: <StackPanel KeyboardNavigation.TabNavigation="Cycle"> <TextBo

有没有办法强制焦点导航(由Tab键或
MoveFocus
方法控制)在给定容器内换行?我在下面包含了演示此问题的代码。让选项卡将焦点从
TextBox
“Charlie”移动到
TextBox
“Able”(对于
TextBox上的Shift+Tab
“Able”),而不是将其移动到
MenuItem
“Alpha”,最简单的方法是什么


使用Ke附加属性,如下所示:

<StackPanel KeyboardNavigation.TabNavigation="Cycle">
    <TextBox Text="Able" />
    <TextBox Text="Baker" />
    <TextBox Text="Charlie" />
</StackPanel>


在上找到答案。

听起来您想要的是与工具栏相同的行为:您可以在工具栏中使用tab键,但一旦工具栏中的某个元素获得键盘焦点,焦点就会在其中循环。如果是,请按如下方式使用FocusManager:

<StackPanel FocusManager.IsFocusScope="True">
    <!-- Controls go here... -->
</StackPanel>

IsFocusScope
是一个完全不同的东西-它定义了一个新的逻辑焦点作用域,它记住该作用域内的逻辑焦点,并在键盘(“物理”)焦点返回该作用域后将其还原。拥有它将不会启用选项卡循环行为-这是由
KeyboardNavigation.TabNavigation
属性控制的,如另一个答案中所述。
<StackPanel FocusManager.IsFocusScope="True">
    <!-- Controls go here... -->
</StackPanel>