根据此代码:
<StackPanel>
<StackPanel.ContextMenu>
<ContextMenu>
<MenuItem Header="menuitem1"/>
<MenuItem Header="menuitem2"/>
</ContextMenu>
</StackPanel.ContextMenu>
<Button Width="100" Height="100"/>
<Button Width="100" Height="100"/>
</StackPanel>
如果右键单击按钮,则会出现ContextMenu,子项将继承其父项的ContextMenu。
我的问题是如何阻止此功能?
编辑:如果可能,我需要在xaml中使用。
答案 0 :(得分:4)
我找到了这个解决方案
<StackPanel>
<StackPanel.ContextMenu>
<ContextMenu>
<MenuItem Header="menuitem1"/>
<MenuItem Header="menuitem2"/>
</ContextMenu>
</StackPanel.ContextMenu>
<Button Width="100" Height="100">
<Button.ContextMenu>
<ContextMenu Visibility="Hidden"/>
</Button.ContextMenu>
</Button>
<Button Width="100" Height="100"/>
</StackPanel>
答案 1 :(得分:2)
在相关按钮上,您需要停止右键单击鼠标事件,直到包含StackPanel
。您可以通过这样处理MouseDown
来完成此操作:
void button_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.RightButton == MouseButtonState.Pressed)
{
e.Handled = true;
}
}