Contextmenu - 禁用右键单击以打开它

时间:2014-11-16 20:54:40

标签: c# wpf xaml contextmenu

我有这样的xaml代码:

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

        </ContextMenu>
    </Grid.ContextMenu>
</Grid>

我在后面的代码中生成网格物品。我想要的是右键单击禁用上下文菜单打开。我想在确定条件发生时打开它。

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

  • 生成Unit的对象并将它们放入Grid;

每个对象都有unit.MouseRightButtonUp + = unit_MouseRightButton

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

}

所以这意味着只有条件得到满足才能打开Contextmenu,但无论如何它都会打开。

1 个答案:

答案 0 :(得分:10)

您可以将附加属性ContextMenuService.IsEnabled设置为false。然后您可以手动弹出ContextMenu。

您必须为拥有该菜单的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;
}