上下文菜单 - 禁用右键单击以打开它
本文关键字:单击 右键 菜单 上下文 | 更新日期: 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;
}