我有一个场景,其中有一个GroupBox
其中有一点内容。我想添加一个ContextMenu
到GroupBox
,并在用户右键单击框中的任何位置时显示该菜单。WPF GroupBox ContextMenu不会显示,除非边框/标题点击
我遇到的问题是仅当点击边框或GroupBox
的标题时才会出现上下文菜单。如果你点击框内的某个地方,父母的ContextMenu
就是显示内容。
下面是一些XAML演示该问题:
<Window x:Class="Dummy.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Window.ContextMenu>
<ContextMenu>
<MenuItem Header="Window menu" />
</ContextMenu>
</Window.ContextMenu>
<GroupBox Header="GroupBox">
<GroupBox.ContextMenu>
<ContextMenu>
<MenuItem Header="GroupBox menu" />
</ContextMenu>
</GroupBox.ContextMenu>
</GroupBox>
</Window>
所以,当你点击GroupBox
里,你总能得到“窗口菜单”来了,但我希望“菜单组”代替。
有谁知道为什么会发生这种情况,并可能如何解决它?
非常感谢。
OJ
谢谢查理。你说的是有道理的。有趣的是,在我的实际代码中(不是上面的模糊例子),我确实有内容,但是这些内容并非如上所示的简单标签。这些东西是否只与某些类型的内容配合使用?我有一个DockPanel填充整个组框,但这似乎没有帮助。也许我会在那里抛出一个边界,看看结果如何。 感谢您的建议。 – 2009-08-12 00:51:25
再次嗨。因此,似乎只有某些类型的内容实际上使此功能起作用。像dockpanels和边界的东西根本就不工作。因此,我按照您的建议将整个内容包装在标签中,并解决了问题。我不喜欢它,但它的作品:)非常感谢。 – 2009-08-12 00:55:23
包装标签中的所有内容并将'HorizontalAlignment =“Stretch”VerticalAlignment =“Stretch”'分配给'容器'标签对我来说是有效的。谢谢! – corentinaltepe 2017-04-12 08:51:15