我正在使用Microsoft的新WPF功能區(2010年10月發行版),並使用RibbonApplicationSplitMenuItem
設計了我的應用程序菜單。如果用戶點擊RibbonApplicationSplitMenuItem
,我想打開程序設置對話框。子項目包含直接鏈接到設置對話框中的各個標籤頁面,我想打開設置對話框並選擇所選擇的頁面。帶有子項目的WPF Ribbon應用程序菜單執行子項目和父項回調
<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設計器中的屬性窗口也拒絕顯示回調訂閱,除非除去父項的回調或所有子項的回調,所以我想我必須做錯了什麼。
我該如何達到理想的行爲?
我通過測量scannerSettingsClicked()結束和settingsClicked()開始之間的時間來「解決」這個問題。如果小於500毫秒,我認爲這是後續呼叫,什麼都不做。不是很好,但可以完成工作...... – Cygon 2010-12-01 10:25:13