RT
当前需求为TabControl内包含多个TabItem,例如TabItem1、TabItem2....
TabItem1 内包含一个自己编写的UserControl,同时注册了一个委托事件,绑定在UserControl的一个 Label上,当双击Label时,页面自动跳转到TabItem2.
//添加一个委托
public delegate void ReOpenNextFile(ShowFileInfo nextFile);
//添加一个PassDataBetweenFormHandler类型的事件
public event ReOpenNextFile OpenNextFileEvent;
但是实际使用时,发现TabControl会将SelectItem切换到TabItem2,然后瞬间切回TabItem1,(UI显示不出来,通过断点发现的)
在网上查询了很多资料,没有应用于TabControl中TabItem包含UserControl切换的解决方案
自己没办法动了一下只会CV的大脑,因为是通过UserControl的MouseDoubleClick事件点击实现调转,是不是UserControl的DoubleClick事件处理后(已经跳转到TabItem2了),Click事件又传到了 TabItem1上,导致焦点转回TabItem1.
事实果然如此~
监听TabItem的MouseDoubleClick事件,过滤该控件的触发,如果是控件内引发的事件过滤,代码如下:
void TabItem_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (e.Source is TabItem)
{
e.Handled = true;
Debug.WriteLine(MainTabControl.SelectedIndex.ToString());
}
}