2013-09-01 193 views
0

我想將項目添加到WPF- ContextMenu只用於「描述」下面的項目,但我不知道如何添加一個簡單的文本行首先項目,其中的文本集中對齊,文本不像正常的MenuItem s那樣可選。添加描述性菜單項到WPF上下文菜單

我想是這樣的:

<ContextMenu Grid.Row="0" StaysOpen="False"> 
    <TextBlock Text="Add New:" IsEnabled="False" HorizontalAlignment="Center"/> 
    <MenuItem Header="one"/> 
    <MenuItem Header="two (horizontal)"/> 
    <MenuItem Header="two (vertical)"/> 
    <MenuItem Header="three"/> 
    <MenuItem Header="four"/> 
    <MenuItem Header="six"/> 
</ContextMenu> 

可惜的TextBlock既不中心對齊,也不是不可選擇的。 問題是,使用MenuItem並將IsEnabled屬性設置爲false,文本不再是普通的黑色,而且我也無法真正將其集中對齊。

希望有人能想到一個簡單的解決方案,我根本找不到任何東西。

回答

2

我會建議你爲menuitems創建SubMenu項目。這樣菜單項將把它下面的所有子菜單分組。

我已經給出了使用純粹使用mvvm的menuitem和子菜單創建上下文菜單的答案。在這裏你可以參考它。

WPF Context Menu with dropdown list showing hyperlinks

或你所提到的情況。我嘗試這樣做:

 <ContextMenu StaysOpen="False"> 
         <MenuItem Header="Add New:" IsEnabled="False" HorizontalAlignment="Center"> 
          <MenuItem.Style> 
           <Style TargetType="{x:Type MenuItem}"> 
            <Style.Triggers> 
             <Trigger Property="IsEnabled" Value="False"> 
              <Setter Property="Foreground" Value="Black"/> 
             </Trigger> 
            </Style.Triggers> 
           </Style> 

          </MenuItem.Style> 
         </MenuItem> 
         <MenuItem Header="one"/> 
         <MenuItem Header="two (horizontal)"/> 
         <MenuItem Header="two (vertical)"/> 
         <MenuItem Header="three"/> 
         <MenuItem Header="four"/> 
         <MenuItem Header="six"/> 
        </ContextMenu> 

和我有一樣的菜單 enter image description here

添加新:是不可選的,也鼠標不突出顯示。

希望它有幫助。謝謝

+0

感謝您的答案,但是這看起來不像我的問題的直接解決方案。我會考慮這個解決方案,如果描述性項目的想法沒有工作。 – phil13131

+0

我用其他選項更新了答案。看看它是否可以幫助你。謝謝 – Nitin

+0

現在這是個好主意,非常感謝! – phil13131

相關問題