在WPF TabControl中,默认行为是在鼠标按下时更改选定的选项卡。
在我的应用程序中,更改选项卡有时会调整大小,有时鼠标注册事件将在另一个用户控件上调用,因为tabcontrol已移动。
如果我可以将标签页设置为仅在鼠标向上而不是鼠标按下时切换,则可以解决问题。
答案 0 :(得分:2)
您可以像这样使用自定义TabItem:
public class MyTabItem : TabItem {
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e) {
if (e.Source == this || !this.IsSelected)
return;
base.OnMouseLeftButtonDown(e);
}
protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e) {
if (e.Source == this || !this.IsSelected)
base.OnMouseLeftButtonDown(e); // OR just this.Focus(); OR this.IsSeleded = true;
base.OnMouseLeftButtonUp(e);
}
}