0

我正在尝试将一个项目添加到 WPF-ContextMenu仅用于“描述”下面的项目,但我不确定如何在所有项目上方添加一行简单的文本,其中文本居中对齐并且文本是不能像普通MenuItems 那样选择。

我试过这样的事情:

<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 既不是居中对齐的,也不是不可选择的。问题是使用 aMenuItem并将IsEnabled-property 设置为 false,文本不再是正常的黑色,而且我也无法真正将其居中对齐。

希望有人能在这里想到一个简单的解决方案,我根本找不到任何东西。

4

1 回答 1

2

我会建议您为菜单项创建子菜单项。这样,menuitems 会将其下的所有子菜单项分组。

我已经给出了纯粹使用 mvvm 使用 menuitem 和 submenuitems 创建上下文菜单的答案。在这里你可以参考一下。

带有显示超链接的下拉列表的 WPF 上下文菜单

或者对于你提到的情况。我试过这个:

     <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>

我得到了菜单 在此处输入图像描述

添加新:是不可选择的,鼠标悬停也不会突出显示它。

希望能帮助到你。谢谢

于 2013-09-01T12:38:12.587 回答