防止父项的ContextMenu继承子项

问题描述

|| 根据此代码
<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的方法。     

解决方法

        我找到了这个解决方案
<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>
    ,        在有问题的按钮上,您需要停止右键单击鼠标事件,直到扩展到包含的“ 2”。您可以这样处理
MouseDown
来做到这一点:
void button_MouseDown(object sender,MouseButtonEventArgs e)
{
    if (e.RightButton == MouseButtonState.Pressed)
    {
        e.Handled = true;
    }
}