WPF TabControl Как изменить Tab на мышь вверх, а не вниз? - PullRequest
5 голосов
/ 01 июня 2011

В WPF TabControl поведение по умолчанию заключается в изменении выбранной вкладки при нажатии мыши.

В моем приложении изменение вкладки иногда меняет размеры, и иногда событие «вверх» мыши вызывается для другого пользовательского элемента управления, потому что элемент управления Tab перемещен.

Если я смогу настроить вкладки так, чтобы они включались только при наведении мыши вверх, а не при нажатии мыши, это решило бы проблему.

1 Ответ

2 голосов
/ 01 июня 2011

Вы можете использовать пользовательский 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);
    }
}
...