2011-06-07 27 views
10

¿Cómo se oculta la barra de herramientas de acceso rápido en la cinta de un WPF?WPF Ribbon - Ocultar barra de herramientas de acceso rápido

+1

¿Quieres allí para no ser una barra de acceso rápido, o ¿Está buscando una funcionalidad de mostrar/ocultar? Estoy usando Microsoft Ribbon, y no tengo botones en mi QAT por defecto y no aparece nada allí. – Scott

+2

Quiero ocultarlo permanentemente. Probablemente sea porque utilizas RibbonWindow y uso Windows normal, porque RibbonWindow parece una pieza de s ... en Win XP. – redman

+3

Gotchya ... Utilizo RibbonWindow. Y estoy de acuerdo ... se ve terrible en XP. – Scott

Respuesta

11

La barra de herramientas de acceso rápido se oculta automáticamente cuando el control Ribbon se encuentra en un RibbonWindow. Cuando no lo es, parece imposible ocultarlo. Ya trabajé horas en este tema y no pude ocultarlo correctamente. Pero hay una solución simple: coloque el control Ribbon dentro de un Panel y déle un margen superior negativo para que se deslice fuera del Panel. Establezca la propiedad ClipToBounds del Panel en verdadero y el QAT se ocultará. Por cierto, hay múltiples implementaciones de Ribbon para WPF, incluso para los propios Microsoft ("Fluent Ribbon" y "Microsoft Ribbon for WPF"), así que la próxima vez debe mencionar de cuál está hablando.

+0

Es una vista previa de la cinta WPF desde http://wpf.codeplex.com/wikipage?title=WPF%20Ribbon%20Preview – redman

+1

Solo una nota si comenzó con un stock RibbonWindow como lo hice: Cambié el tipo de ventana a Ventana en ambos XAML y código subyacente, agregó ClipToBounds = "true" a la cuadrícula de LayoutRoot, y le dio a la cinta un margen superior de -22. – Sean

36

Para Microsoft Ribbon for WPF, puede ocultarlo utilizando VisualTreeHelper. En el controlador de Loaded caso, simplemente cambiar el tamaño de la fila que contiene la barra de herramientas de acceso rápido a 0:

private void RibbonLoaded(object sender, RoutedEventArgs e) 
{ 
    Grid child = VisualTreeHelper.GetChild((DependencyObject)sender, 0) as Grid; 
    if (child != null) 
    { 
    child.RowDefinitions[0].Height = new GridLength(0); 
    } 
} 

enter image description here

+8

Esto debe marcarse como la respuesta final. – IllidanS4

+1

Una solución buena y simple. – MeuChapeu

+0

Lástima que no soluciona la ventana del diseñador, pero puedo vivir con eso. Vence a las otras soluciones aquí – Assimilater

1

O si lo quieres todo en el XAML, esto funciona

<ribbon:Ribbon> 
    <ribbon:Ribbon.Loaded>CollapseQuickAccessToolbar</ribbon:Ribbon.Loaded> 
    <x:Code> 
     private void CollapseQuickAccessToolbar(Object sender, RoutedEventArgs e) { 
      ((Grid)VisualTreeHelper.GetChild((DependencyObject)sender, 0)).RowDefinitions[0].Height = new GridLength(0); 
     } 
    </x:Code> 
</ribbon:Ribbon> 
+1

Esto funciona en tiempo de ejecución, sin embargo, se rompe en el momento del diseño. – BrunoLM

-2

I sabe que esta es una publicación anterior, pero encontró una solución más fácil ... Agregue esto dentro de la cinta: -

<ribbon:Ribbon.QuickAccessToolBar> 
    <ribbon:RibbonQuickAccessToolBar Visibility="Collapsed"/> 
</ribbon:Ribbon.QuickAccessToolBar> 
+0

No funciona para mí. ¿Hay algo más que necesite hacerse? – psubsee2003

+0

@ psubsee2003: Al establecer esta propiedad, pude ocultar la barra de herramientas. También configuré el menú contextual en "{x: Null}" en los niveles de cinta, grupo de botones y botones para desactivar el menú contextual. – Dipu

0

Aquí está la solución:

this.ribbonControl1.ToolbarLocation = DevExpress.XtraBars.Ribbon.RibbonQuickAccessToolbarLocation.Hidden; 
Cuestiones relacionadas