2011-03-09 86 views
6

使用最新(2010年10月)的WPF功能區庫,存在一個菜單項以最小化/最大化(或者摺疊/展開,如果您願意)功能區控件。WPF功能區摺疊並以編程方式擴展

有誰知道是否還有一種方法掛鉤到控制此行爲的事件中,以便可以從單獨的UI以編程方式控制它? 或者,更好的方法是有辦法讓摺疊/展開按鈕在2010 Office應用程序中顯示在功能區中?

回答

5

您可以使用Ribbon類的布爾屬性IsMinimized來顯示/隱藏功能區本身。它是一個依賴屬性,所以你可以綁定它的值來支持你描述的場景。

據我所知,默認模板沒有顯示/隱藏按鈕,就像Office一樣,但修改模板(使用Blend)添加一個模板不應該太困難。

+0

謝謝。我已使用該屬性以及功能區上的SizeChanged事件。 我可能會延期修改模板。 – 2011-03-16 21:23:15

1

如果你需要的是知道什麼時候酒吧得到最小化(這發生在你雙擊標籤標題時),你可以掛鉤IsMinimizedChanged事件,但呃..它是缺少的。 希望這是一個DependencyProperty這樣你就可以成功地鉤到任何DependencyProperty變化是這樣的:

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

我想做的事(因此來到這裏)是爲了防止它從點擊標題,以便最大限度地減少時,雙我結束了使用此代碼:

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

沒那麼花哨,但能夠完成任務。

0

添加一個切換按鈕(簡單的按鈕,並設置其內容v或^根據所請求的操作),然後就可以在點擊按鈕使用ContentControl中,以滿足您的要求:

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

使用contentControl.Visibility = System.Windows.Visibility.Visible;爲了最大化色帶