我在一个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组件时,功能区内的所有按钮都将变为禁用。 这是一种不受欢迎的行为,因为我想要一些特定按钮(如“新”和“打开”命令)始终全局启用,尽管我点击了哪里。 我怎样才能做到这一点? 提前感谢任何建议。
答案 0 :(得分:1)
好的,我解决了自己的问题。 由于在Canvas组件中定义的CommandBindings,它们无法管理到更广泛的(全局)上下文中,因此我将它们移动到Window代码隐藏中,以更灵活的方式委派它们的执行/激活。 这就是全部:))