带子项的WPF功能区应用程序菜单执行子项和父回调

时间:2010-11-23 13:00:05

标签: wpf callback ribbon

我正在使用微软新的WPF功能区(2010年10月发布),我使用RibbonApplicationSplitMenuItem设计了我的应用程序菜单。如果用户点击RibbonApplicationSplitMenuItem,我想打开程序设置对话框。子项包含指向设置对话框中各种选项卡页面的直接链接,我想打开所选页面的设置对话框。

<ribbon:RibbonApplicationSplitMenuItem
  Header="Settings"
  x:Name="SettingsItem"
  Click="settingsClicked"
>
  <ribbon:RibbonApplicationMenuItem
    Header="Scanner Settings"
    x:Name="scannerSettingsItem"
    Click="scannerSettingsClicked"
  />
  <ribbon:RibbonApplicationMenuItem
    Header="Printer Settings"
    x:Name="printerSettingsItem"
    Click="printerSettingsClicked"
  />
</ribbon:RibbonApplicationSplitMenuItem>

我的问题是,当用户点击例如。 “扫描仪设置”子项目,首先执行scannerSettingsClicked()回调,然后执行settingsClicked()回调,导致设置对话框在关闭后第二次显示。

Visual Studio的WPF设计器中的属性窗口也拒绝显示回调订阅,除非删除父项的回调或所有子项的回调,所以我想我一定做错了。

如何实现理想的行为?

1 个答案:

答案 0 :(得分:1)

在您的子项目点击事件中,设置e.Handled = true以防止事件冒泡回到父项目。