当我激活上下文菜单支持时,我想要显示一个上下文菜单,而当上下文菜单支持被取消激活时,我没有显示。
因此我将此上下文菜单应用于按钮:
<Button.ContextMenu>
<ContextMenu>
<MenuItem Name="MyContextMenu" Header="Load To Stack" Visibility="Collapsed">
<MenuItem Name="item0" Header="Stack 1" IsCheckable="False" Click="MenuItem_Click"/>
<MenuItem Name="item1" Header="Stack 2" IsCheckable="False" Click="MenuItem_Click"/>
<MenuItem Name="item2" Header="Stack 3" IsCheckable="False" Clic="MenuItem_Click"/>
<MenuItem Name="item3" Header="Stack 4" IsCheckable="False" Click="MenuItem_Click"/>
</MenuItem>
</ContextMenu>
</Button.ContextMenu>
我通过此功能设置Main-Context-Menu-Item的可见性:
public bool ContextMode
{
get { return StackMode; }
set
{
if (value)
MyContextMenu.Visibility = Visibility.Visible;
else
MyContextMenu.Visibility = Visibility.Collapsed;
}
}
如果可见性已折叠,则保留此片段:
我还尝试停用整个上下文菜单,但这不起作用。 上下文菜单是否已停用,我尝试让它弹出上下文菜单不显示。 如果我在尝试取消停用的c-m后激活上下文菜单,则会显示两个菜单。
也许有人知道如何摆脱所显示的片段。
答案 0 :(得分:1)
您需要处理拥有 ContextMenuOpening
的{{1}}事件:
FrameworkElement
代码隐藏:
<Button Name="Button"
Content="Test"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Padding="10"
Click="ButtonBase_OnClick">
<Button.ContextMenu>
<ContextMenu>
<MenuItem Name="Item0" Header="Load To Stack">
<MenuItem Name="SubItem0" Header="Stack 1" IsCheckable="False"/>
<MenuItem Name="SubItem1" Header="Stack 2" IsCheckable="False"/>
<MenuItem Name="SubItem2" Header="Stack 3" IsCheckable="False"/>
<MenuItem Name="SubItem3" Header="Stack 4" IsCheckable="False"/>
</MenuItem>
</ContextMenu>
</Button.ContextMenu>
</Button>