2011-06-07 196 views
10

如何隱藏WPF功能區中的快速訪問工具欄?WPF Ribbon - 隱藏快速訪問工具欄

+1

你想在那裏永遠是一個快速訪問工具欄,或者你在找顯示/隱藏功能?我使用的是Microsoft功能區,默認情況下我的QAT中沒有按鈕,沒有任何顯示。 – Scott 2011-06-07 14:17:35

+2

我想永久隱藏它。這可能是因爲你使用RibbonWindow,而我使用普通的Windows,因爲RibbonWindow看起來像是在Win XP中的一部分。 – redman 2011-06-07 16:58:18

+3

Gotchya ...我使用RibbonWindow。我同意......在XP中看起來很糟糕。 – Scott 2011-06-07 18:32:21

回答

11

當Ribbon控件位於RibbonWindow中時,快速訪問工具欄會自動隱藏。當它不是,它似乎不可能隱藏它。我已經在這個問題上工作了幾個小時,無法正確隱藏它。 但是有一個簡單的解決方法:將Ribbon控件放置在面板內部,並給它一個負的頂部邊距,以便滑動到面板之外。將面板的ClipToBounds屬性設置爲true,QAT將被隱藏。 順便說一下 - 即使是微軟本身(「Fluent Ribbon」和「Microsoft Ribbon for WPF」),WPF也有多個Ribbon實現,所以下次您應該提及您正在談論的是哪一個。

+0

這是來自http://wpf.codeplex.com/wikipage?title=WPF%20Ribbon%20Preview的WPF功能區預覽 – redman 2011-07-05 11:10:09

+1

就像我做的那樣,如果您使用的是股票RibbonWindow,那麼請注意:我在兩個XAML中將窗口類型更改爲Window和代碼隱藏,將ClipToBounds =「true」添加到LayoutRoot網格,併爲該功能區提供-22的頂部邊距。 – Sean 2012-03-07 20:13:42

36

對於Microsoft Ribbon for WPF,您可以使用VisualTreeHelper來隱藏它。在Loaded事件處理程序,只是調整包含快速訪問工具欄行至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

這應該被標記爲最終答案。 – IllidanS4 2013-11-17 00:00:45

+1

一個好的和簡單的解決方案。 – MeuChapeu 2015-07-15 14:38:16

+0

太糟糕了,它不能修復設計師窗口,但我可以忍受它。在這裏擊敗其他解決方案 – Assimilater 2017-07-31 17:20:20

1

或者,如果你想這一切的XAML,這個工程

<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

這可以在運行時工作,但在設計時會中斷。 – BrunoLM 2015-02-08 13:07:08

-2

我知道這是一箇舊帖子,但找到了一個更簡單的解決方案... 加入此功能區內: -

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

不適用於我。還有什麼需要完成的嗎? – psubsee2003 2014-10-05 11:04:16

+0

@ psubsee2003:通過設置此屬性,我可以隱藏工具欄。我還在功能區,按鈕組和按鈕級別將上下文菜單設置爲「{x:Null}」以禁用上下文菜單。 – Dipu 2014-10-13 15:15:45

0

這裏是解決方案:

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