我有一个列表框,其中每个项目都使用文本框表示。问题是我希望能够在移动到 xaml 窗口中的下一个元素之前在列表框中的所有项目之间进行切换。
当前(和正常的 WPF 行为)是,当我按 Tab 键进入列表框时,第一个元素会突出显示,如果我再次按 Tab 键,则焦点将移至该项目内的文本框中。如果我再次按 Tab 键,焦点将移动到窗口中的下一个元素(而不经过列表框中的任何其他项目)。
我想要的行为如下:当我切换到列表框时,第一个文本框自动获得焦点(不突出显示整个项目)*。如果我再次按 Tab 键,则列表框中的下一个文本框将获得焦点。当我点击列表框中的最后一个文本框时,焦点将移动到下一个控件。
*我已经知道如何做到这一点,我只是将其发布在这里以解释完整的过程。
我一直在寻找解决方案,但一直找不到任何东西。
这可以在 xaml 中通过设置以下两个属性来完成。
<Style TargetType="ListBox" >
<Setter Property="KeyboardNavigation.TabNavigation" Value="Continue" />
</Style>
<Style TargetType="ListBoxItem">
<Setter Property="IsTabStop" Value="False" />
</Style>
完整解释请参见德里克·威尔逊的博客文章 http://web.archive.org/web/20160610091800/http://derekwilson.net:80/derekblog/post/2008/10/15/Getting-the-tab-key-to-work-in-a-WPF-ListView-control.aspx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)