1

我有一个场景,GroupBox其中包含一些内容。我希望添加一个ContextMenuGroupBox在用户右键单击框中的任何位置时显示该菜单。

我遇到的问题是上下文菜单仅在单击边框或标题时出现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,您总是会出现“窗口菜单”,但我想要的是“组菜单”。

有谁知道为什么会发生这种情况以及我可能如何解决它?

非常感谢。

橙汁

4

2 回答 2

3

组框本质上是一个带有标题标签的空边框。在分组框中没有内容的情况下,您的点击实际上是在拥有的Window,这解释了为什么会出现“窗口菜单”。如果您将一些内容放入完全填充它的组框,您将看到组框上下文菜单始终出现:

<GroupBox Header="GroupBox">
   <GroupBox.ContextMenu>
        <ContextMenu>
            <MenuItem Header="GroupBox menu"/>
        </ContextMenu>
    </GroupBox.ContextMenu>
    <Label HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> 
</GroupBox>
于 2009-08-12T00:47:18.250 回答
2

实际问题是许多控件没有背景。我想你会发现,如果你给你的控件添加一个背景,你的上下文菜单就会起作用。如果您不想显示背景,可以将背景设置为透明

于 2013-11-21T16:52:45.287 回答