如何强制启用RibbonButton?

时间:2010-10-19 08:37:21

标签: .net wpf ribbon commandbinding

我在一个Window中有一个Microsoft Ribbonbar,每个RibbonButton都与这样的特定命令相关联:

<ribbon:Ribbon x:Key="MyToolbar"  Name="MyToolbar"  >         
<ribbon:RibbonTab Header="File" >
<ribbon:RibbonGroup Header="File"  >
<ribbon:RibbonButton Command="{x:Static ApplicationCommands.New}"  LargeImageSource="Images/GenericDocument.png" Label="Nuovo" />
<ribbon:RibbonButton Command="{x:Static ApplicationCommands.Open}" SmallImageSource="Images/OpenFolder.png" Label="Apri"  />
</ribbon:RibbonGroup>
</ribbon:RibbonTab>
</ribbon:Ribbon>

我正在以这种方式处理命令进入放置在同一窗口中的特定Canvas对象的代码隐藏

private void BindApplicationCommands()
{
// FILE group
this.CommandBindings.Add(new CommandBinding(ApplicationCommands.New, New_Executed));
this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Open, Open_Executed,Open_Enabled));
}

当我点击外部放置处理代码的Canvas组件时,功能区内的所有按钮都将变为禁用。 这是一种不受欢迎的行为,因为我想要一些特定按钮(如“新”和“打开”命令)始终全局启用,尽管我点击了哪里。 我怎样才能做到这一点? 提前感谢任何建议。

1 个答案:

答案 0 :(得分:1)

好的,我解决了自己的问题。 由于在Canvas组件中定义的CommandBindings,它们无法管理到更广泛的(全局)上下文中,因此我将它们移动到Window代码隐藏中,以更灵活的方式委派它们的执行/激活。 这就是全部:))