.net 我如何告诉ContextMenu相对于其控件而不是光标放置它自己?

.net 我如何告诉ContextMenu相对于其控件而不是光标放置它自己?,.net,wpf,xaml,contextmenu,.net,Wpf,Xaml,Contextmenu,我有一个带有默认命令的按钮和一个用于其他可用命令的上下文菜单: <Button Content="Do this" Height="23" Width="75" Command="local:MyCommands.ThisCommand"> <Button.ContextMenu> <ContextMenu> <MenuItem Header="Do this" Command="local:MyComma

我有一个带有默认命令的按钮和一个用于其他可用命令的上下文菜单:

<Button Content="Do this" Height="23" Width="75" Command="local:MyCommands.ThisCommand">
    <Button.ContextMenu>
        <ContextMenu>
            <MenuItem Header="Do this" Command="local:MyCommands.ThisCommand" />
            <MenuItem Header="Do that" Command="local:MyCommands.ThatCommand" />
        </ContextMenu>
    </Button.ContextMenu>
</Button>

默认情况下,关联菜单从光标的热点开始显示:

但是,我希望它显示在按钮下方的固定相对位置(伪造、编辑的屏幕截图):

设置上下文菜单的
放置
放置矩形
放置目标
属性似乎没有任何作用;上下文菜单坚持在我右键单击按钮的任何位置挂起光标。更糟糕的是,聚焦按钮并点击会导致上下文菜单位于按钮前面,从而完全阻止它

那么,我如何确切地指定上下文菜单应该显示在按钮下面呢?

请查看下面的备注

试试这个

<Button Content="Do this" Height="23" Width="75" 
     ContextMenuService.Placement="Bottom"
     Command="local:MyCommands.ThisCommand">
    <Button.ContextMenu>
        <ContextMenu>
            <MenuItem Header="Do this" Command="local:MyCommands.ThisCommand" />
            <MenuItem Header="Do that" Command="local:MyCommands.ThatCommand" />
        </ContextMenu>
    </Button.ContextMenu>
</Button>


谢谢。你知道为什么在
ContextMenu
上设置
Placement
不起作用吗?@BoltClock我不确定。但请查看备注部分,其中说明要设置
ContextMenuService.Placement
备注部分恰好有答案:“当
ContextMenu
被分配给
FrameworkElement.ContextMenu
FrameworkContentElement.ContextMenu
属性时,
ContextMenuService
ContextMenu
打开时更改此属性的值。”现在一切就绪。