2012-06-20 33 views
0

我在應用程序中使用Microsoft的Ribbon控件。RibbonApplicationMenuItem SubMenu的第一個項目默認未選中

我有一個RibbonApplicationMenuItem,其子項的屬性相同。功能區菜單的默認行爲是,每當使用鍵盤打開子菜單時,默認情況下都會選中(並突出顯示)第一項。

我有兩個子菜單項,如下面的代碼所示。第一個菜單正確打開第一項。但第二個菜單在打開時不會突出顯示第一個項目。唯一的區別是在第二個菜單中,我的第一個項目被禁用(IsEnabled = false)。所以我期望下一個項目(第二項)應該突出顯示。但是是不是:(任何人都知道如何解決這個問題?)

此外最糟糕的是,我不能使用上/下箭頭鍵導航第二個菜單的子菜單,就像我可以做的第一個菜單。很奇怪,似乎對我來說,在MS實現中的錯誤。有沒有人有任何想法!?

(這裏色帶Microsoft.Windows.Controls.Ribbon)

 <ribbon:RibbonApplicationMenuItem Header="Options Group 1"> 
         <ribbon:RibbonApplicationMenuItem Command="{x:Static viewmodel:commands.ExecuteOption1}" Header="Option 1" /> 
         <ribbon:RibbonApplicationMenuItem Command="{x:Static viewmodel:commands.ExecuteOption2}" Header="Option 2"/> 
         <ribbon:RibbonApplicationMenuItem Command="{x:Static viewmodel:commands.ExecuteOption3}" Header="Option 3"/> 
         <ribbon:RibbonApplicationMenuItem Command="{x:Static viewmodel:commands.ExecuteOption4}" Header="Option 4"/> 
     </ribbon:RibbonApplicationMenuItem> 


     <ribbon:RibbonApplicationMenuItem Header="Options Group 2"> 
         <ribbon:RibbonApplicationMenuItem Command="{x:Static viewmodel:commands.ExecuteOption5}" Header="Option 5" IsEnabled="False"/> 
         <ribbon:RibbonApplicationMenuItem Command="{x:Static viewmodel:commands.ExecuteOption6}" Header="Option 6"/> 
         <ribbon:RibbonApplicationMenuItem Command="{x:Static viewmodel:commands.ExecuteOption7}" Header="Option 7"/> 
         <ribbon:RibbonApplicationMenuItem Command="{x:Static viewmodel:commands.ExecuteOption8}" Header="Option 8"/> 
     </ribbon:RibbonApplicationMenuItem> 
+0

在命名空間System.Windows.Controls.Ribbon中嘗試使用最新版本 - 現在(如.NET 4.5) - 並發現鍵盤導航在很大程度上可行;奇怪的是,你不能從第二個菜單中的「向下」箭頭開始,只有「向上」。 – Bevan

回答

0

這似乎是最好的我可以做的是將禁用的菜單項移動到第一個啓用的菜單項下。像這樣:

<ribbon:RibbonApplicationMenuItem Header="Options Group 2"> 
        <ribbon:RibbonApplicationMenuItem Command="{x:Static viewmodel:commands.ExecuteOption6}" Header="Option 6"/> 
        <ribbon:RibbonApplicationMenuItem Command="{x:Static viewmodel:commands.ExecuteOption5}" Header="Option 5" IsEnabled="False"/> 
        <ribbon:RibbonApplicationMenuItem Command="{x:Static viewmodel:commands.ExecuteOption7}" Header="Option 7"/> 
        <ribbon:RibbonApplicationMenuItem Command="{x:Static viewmodel:commands.ExecuteOption8}" Header="Option 8"/> 
    </ribbon:RibbonApplicationMenuItem> 

它以這種方式工作,但我知道這不是最好的辦法。我認爲這個問題沒有其他解決方案。

相關問題