2011-06-01 20 views
5

En el control TabControl de WPF, el comportamiento predeterminado es cambiar la pestaña seleccionada con el mouse hacia abajo.WPF TabControl ¿Cómo cambiar la pestaña con el mouse hacia arriba en lugar de hacia abajo?

En mi aplicación, cambiar la pestaña a veces cambia el tamaño de las cosas, y en ocasiones el evento de mouse arriba se llama en otro control de usuario porque la tabcontrol se movió.

Si puedo configurar las páginas de pestañas para que cambien solo con el mouse hacia arriba en lugar de hacia abajo, se solucionaría el problema.

Respuesta

2

Puede utilizar un TabItem encargo de este modo:

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); 
    } 
} 
+1

Excelente esto esté arreglado mi problema rápidamente! – Joe

Cuestiones relacionadas