WPF TabControl如何在鼠标向上而不是鼠标按下时更改Tab?

时间:2011-06-01 17:35:36

标签: c# wpf tabcontrol

在WPF TabControl中,默认行为是在鼠标按下时更改选定的选项卡。

在我的应用程序中,更改选项卡有时会调整大小,有时鼠标注册事件将在另一个用户控件上调用,因为tabcontrol已移动。

如果我可以将标签页设置为仅在鼠标向上而不是鼠标按下时切换,则可以解决问题。

1 个答案:

答案 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);
    }
}