可见但不可选择的XAML菜单项

本文关键字:XAML 菜单项 可选择 | 更新日期: 2023-09-27 18:14:35

所以我对XAML非常陌生,还在学习。我已经遵循了几个关于菜单和菜单项的教程,但我似乎找不到一种方法来添加一些东西到菜单中,而不是让它是可选择的。我试着只添加一个标签,它仍然显示为可选择的。我尝试将isenabled设置为false,它确实变成了灰色,但仍然是可选择的。我试着关掉hit - test,也不管用。我的猜测是,这与设置自定义样式有关,而我对此一无所知。我要回到谷歌,深入研究这个问题,但同时我想在这里发帖,看看是否有人能提供一个好的方向。

编辑:我尝试过的一个简单的例子:

<Menu>
    <MenuItem Header="My Menu">
        <Label Content="Label1"/>                           //Selectable even though it's a label. I would Expect a label to not be selectable.
        <MenuItem Header="Menu Item 1"/>                    //Selectable as it should be.
        <Separator />                                       //Not selectable
        <MenuItem Header="Menu Item 2"/>
        <Label Content="Another Label" IsEnabled="False"/>  //Selectable even though it is set to IsEnabled=False.
    </MenuItem>
</Menu>

可见但不可选择的XAML菜单项

这可能更符合您的要求。我加入了Focusable="False"IsHitTestVisible="False"。注意,我必须将最后一个<Label>更改为<MenuItem>,因为Focusable="False"没有完全做到这一点。

<Menu>
    <MenuItem Header="My Menu">
        <Label Content="Label1"/>
        <MenuItem Header="Menu Item 1" Focusable="False" IsHitTestVisible="False"/>
        <Separator />                                       
        <MenuItem Header="Menu Item 2"/>
        <MenuItem Header="Another Label" IsEnabled="False" Focusable="False" IsHitTestVisible="False"/>   
    </MenuItem>
</Menu>

看看这篇文章菜单控制教程,如果你使用命令CanExecute方法可以灰色项目,使其不可选择