代码之家  ›  专栏  ›  技术社区  ›  Joseph Sturtevant

WPF焦点导航包装

  •  3
  • Joseph Sturtevant  · 技术社区  · 16 年前

    是否有强制焦点导航的方法(由tab键控制或 MoveFocus 方法)包装在给定容器内?我已经包含了下面演示这个问题的代码。使选项卡移动焦点的最简单方法是什么 TextBox “查利” 文本框 “能够”(对于SHIFT+TAB ON,反之亦然) 文本框 “有能力”),而不是将其移动到 MenuItem “阿尔法”?

    <Window x:Class="NavWrapExample.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="300" Width="300">
        <DockPanel LastChildFill="True">
            <Menu DockPanel.Dock="Top">
                <MenuItem Header="Alpha" />
                <MenuItem Header="Bravo" />
                <MenuItem Header="Charlie" />
            </Menu>
            <StackPanel>
                <TextBox Text="Able" />
                <TextBox Text="Baker" />
                <TextBox Text="Charlie" />
            </StackPanel>
        </DockPanel>
    </Window>
    
    2 回复  |  直到 16 年前
        1
  •  4
  •   Joseph Sturtevant    16 年前

    使用KE yboardNavigation.TabNavigation 附属财产,如:

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

    在上找到答案 Mark Smith's blog .

        2
  •  -1
  •   AndyM    16 年前

    听起来你想要的是和工具栏一样的行为:你可以在工具栏上加标签,但是一旦工具栏中的一个元素获得键盘焦点,焦点就会在里面循环。如果是,请使用FocusManager,如下所示:

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