TabItem OnSelectionChanged()设置关注于内部控制(WPF)
本文关键字:内部控制 WPF 设置 OnSelectionChanged TabItem | 更新日期: 2023-09-27 17:53:47
我有两个TabItem
包含在一个TabControl
中。
每个TabItem
包含多个TextBox
。
当TabControl
的OnSelectionChanged
事件被触发时,除了选择新的TabItem
,它还将焦点设置在新选中的项目中包含的第一个TextBox
上。
有什么方法可以防止这种情况发生吗?
在TextBox
上设置IsTabStop="False"
将实现这一点,但不幸的是也阻止了TextBox
被"标签"到。
在选项卡控件中,像这样处理每个选项卡的焦点事件:
<TabItem GotFocus="TabItem_OnGotFocus">
然后使用:
删除焦点private void TabItem_OnGotFocus(object sender, RoutedEventArgs e)
{
Keyboard.ClearFocus();
}
只需在你的内容中添加一个容器,如Grid, Stackpanel, Border等,并将其设置为可聚焦。当制表符选择改变时,焦点被设置为容器,您也可以使用制表符键。
<TabItem Header="myHeader">
<StackPanel Focusable="True">
...
</StackPanel>
</TabItem>
@shannon它回答了你关于MVVM的问题