2013-09-01 253 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

相关问题