上下文菜单 - 禁用右键单击以打开它

本文关键字:单击 右键 菜单 上下文 | 更新日期: 2023-09-27 18:30:32

>我有这样的xaml代码:

<Grid x:Name="boardGrid">
    <Grid.ContextMenu>
        <ContextMenu Opacity="0.7" x:Name="menuContext">
        </ContextMenu>
    </Grid.ContextMenu>
</Grid>

我在代码隐藏中生成网格的项。我想要的是禁用右键单击时打开上下文菜单。我想在某些情况发生时打开它。

这是我.cs文件中的内容:

  • 生成单位的对象并将它们放入网格中;

每个对象都有单位。鼠标右键向上 += unit_MouseRightButton

void unit_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
{
    if (CurrentGame.CurrentPlayer.HasTurn == false) return; 
    .....
    ContextMenu.IsOpen = true;
}

因此,这意味着上下文菜单只有在满足条件时才应打开,但无论如何它都会打开。

上下文菜单 - 禁用右键单击以打开它

可以将附加属性ContextMenuService.IsEnabled设置为 false 。然后,您可以手动弹出上下文菜单。

必须为拥有菜单的 GUI 元素设置该属性。为菜单本身设置它不会执行任何操作。

<Grid x:Name="boardGrid" ContextMenuService.IsEnabled="false">
    <!-- ... -->
</Grid>
void unit_MouseRightButtonUp(object sender, MouseButtonEventArgs e) {
    if (CurrentGame.CurrentPlayer.HasTurn == false) return; 
    .....
    boardGrid.ContextMenu.IsOpen = true;
}