繁体   English   中英

WPF功能区以编程方式折叠和展开

[英]WPF Ribbon collapse and expand programmatically

使用最新的(2010年10月)WPF功能区库,存在一个菜单项,用于最小化/最大化(或折叠/展开,如果您愿意)功能区控件。

有没有人知道是否还有一种方法可以挂钩控制此行为的事件,以便可以从单独的UI以编程方式控制它? 或者,更好的是,有没有办法让折叠/展开按钮显示在功能区中,就像2010 Office应用程序一样?

您可以在Ribbon类上使用布尔属性IsMinimized来显示/隐藏功能区本身。 它是一个依赖项属性,因此您可以绑定其值以支持您描述的方案。

据我所知,默认模板没有像Office那样的显示/隐藏按钮,但修改模板(使用Blend)添加模板应该不会太难。

如果您需要知道什么时候条形最小化(当您双击标签页时会发生这种情况),您可以挂钩到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);

不是那么花哨但是完成工作。

添加一个切换按钮(简单按钮并根据所请求的操作将其内容设置为v或^)然后您可以在按钮单击中使用ContentControl来满足您的要求:

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

使用contentControl.Visibility = System.Windows.Visibility.Visible; 为了最大化色带

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM