2011-03-09 15 views
6

Con las últimas (octubre de 2010) bibliotecas de cinta WPF, existe un elemento de menú para minimizar/maximizar (o contraer/expandir, si lo prefiere) el control de cinta.WPF Cinta colapsar y expandir programáticamente

¿Alguien sabe si también hay una forma de conectar los eventos que controlan este comportamiento para que pueda ser controlado programáticamente desde una UI separada? O, mejor aún, ¿hay alguna manera de obtener un botón de colapsar/expandir para mostrar en la cinta, como lo hacen las aplicaciones 2010 de Office?

Respuesta

5

Puede usar la propiedad booleana IsMinimized en la clase Ribbon para mostrar/ocultar la propia cinta. Es una propiedad de dependencia, por lo que puede vincular su valor para admitir los escenarios que describe.

Hasta donde yo sé, la plantilla predeterminada no tiene un botón mostrar/ocultar, como lo hace Office, pero no debería ser demasiado difícil modificar la plantilla (usando Mezcla) para agregar una.

+0

Gracias. He aprovechado esa propiedad y también el evento SizeChanged en la propia cinta. Probablemente no pueda modificar la plantilla. –

1

Si lo que necesita es saber cuándo se minimiza la barra (esto ocurre cuando hace doble clic en el encabezado de una pestaña) puede enlazar al evento IsMinimizedChanged, pero er ... falta. Es de esperar que es un DependencyProperty para que pueda conectar con éxito a cualquier DependencyProperty cambio de esta manera:

DependencyPropertyDescriptor.FromProperty(Ribbon.IsMinimizedProperty, typeof(Ribbon)) .AddValueChanged(ribbon, (o, args) => /* your code here */);

Lo que quería hacer (y por lo tanto llegar aquí) es para evitar que se minimiza cuando se hace doble clic en el encabezado de manera terminé usando este código:

DependencyPropertyDescriptor.FromProperty(Ribbon.IsMinimizedProperty, typeof(Ribbon)) .AddValueChanged(ribbon, (o, args) => ribbon.IsMinimized = false);

no es tan sofisticado, pero hace el trabajo.

0

Agregar un botón de activación (simple botón y establecer su contenido a v^o dependiendo de la operación solicitada) y luego se puede utilizar en ContentControl clic de botón para satisfacer sus necesidades:

 ContentControl contentControl = FindVisualChildataBankyName<ContentControl>(rbnName, "mainItemsPresenterHost"); 
    contentControl.Visibility = System.Windows.Visibility.Collapsed; 

Uso contentControl.Visibility = System.Windows.Visibility.Visible; para maximizar la cinta

Cuestiones relacionadas