15
votes

how do you hide Quick Access Toolbar in a WPF's Ribbon?

6
Do you want there to never be a Quick Access Toolbar, or are you looking for show/hide functionality? I'm using the Microsoft Ribbon, and I have no buttons in my QAT by default and nothing shows up there.Scott
I want to permanently hide it. That's probably because you use RibbonWindow and I use normal Windows, because RibbonWindow looks like a piece of s.. in Win XP.redman
Gotchya... I do use RibbonWindow. And I agree... looks terrible in XP.Scott

6 Answers

42
votes

For Microsoft Ribbon for WPF, you can hide it by using the VisualTreeHelper. On the Loaded event handler, just resize the row containing the Quick Access Toolbar to 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

13
votes

The Quick Access Toolbar is automatically hidden when the Ribbon control is in a RibbonWindow. When it is not, it seems impossible to hide it. I have already worked hours on this issue and was unable to hide it properly. But there is one simple workaround: Place the Ribbon control inside of a Panel and give it a negative top margin so it will slide outside of the Panel. Set the Panel's ClipToBounds property to true and the QAT will be hidden. By the way - there are multiple Ribbon implementations for WPF, even by Microsoft themselves ("Fluent Ribbon" and "Microsoft Ribbon for WPF"), so next time you should mention which one you are talking about.

1
votes

Or if you want it all in the XAML, this works

<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>
0
votes

Here is the solution :

this.ribbonControl1.ToolbarLocation = DevExpress.XtraBars.Ribbon.RibbonQuickAccessToolbarLocation.Hidden;
0
votes

Bit late to the party.

<my:Ribbon   >
            <my:Ribbon.ApplicationMenu >
                <my:RibbonApplicationMenu Visibility="Collapsed">
                </my:RibbonApplicationMenu>
            </my:Ribbon.ApplicationMenu>

This will help to hide the quick bar

-2
votes

I know this is an old post, but found an easier solution... Add this inside the ribbon :-

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