在我的WPF应用程序中,我有一个包含各种按钮和框架的页面。在这个框架内有许多文本框。
一开始,我将焦点设置为框架内的第一个文本框。有什么办法可以确保 Tab 只循环框架中的元素,而不会跳到父页面外?
提前谢谢。
答案 0 :(得分:0)
为框架外的控件设置IsTabStop=false
答案 1 :(得分:0)
为了解决这个问题,我设置了
KeyboardNavigation.TabNavigation="Cycle"
在框架上。
答案 2 :(得分:-1)
tabstop
将有效。
现在我的替代解决方案 - 只是假设:ur框架内的第一个元素的tabindex等于5,框架内的最后一个元素的tabindex等于9.取框架范围内具有最大tabindex的元素(即根据假设元素与tabindex 9)。在PreviewKeyDown
事件上写下以下代码:
private void frames_max_tabindex_element_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.KeyValue == 9 )
element_that_has_tabindex_equal_to_frames_min_tab_index_minus_1.Focus();
}
简要探讨。 (使用假设来展示想法)当焦点位于使用tabindex 9的框架元素时,按下选项卡将触发PreviewKeyDown
事件。方法内部你将焦点设置为tabindex等于4的元素。在释放 tab 键之后,windows会将焦点设置到下一个tabindex,即tabindex等于5的元素。所以从tabindex = 9 u跳转到tabindex = 5