2011-03-09 166 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;为了最大化色带