我有一个上下文菜单,通过按热键ctrl +菜单手动显示。因此我使用此功能:
ContextMenu.IsOpen = true;
我在主窗口中调用它。但它有一些奇怪的效果。
我的菜单就是这个:
<Window.ContextMenu>
<ContextMenu Placement="Center">
<MenuItem IsCheckable="False" Name="item2" Click="MenuItem_Click" Header="{DynamicResource countDownNotificationOn}"/>
</ContextMenu>
</Window.ContextMenu>
使用上面的xaml放置也可以使用。因此我将窗口设置为
ContextMenuService.Placement="Center"
但是没有用。
答案 0 :(得分:9)
您需要设置PlacementTarget
的{{1}}属性:
ContextMenu
如果在此之后if (element.ContextMenu != null )
{
element.ContextMenu.PlacementTarget = element;
element.ContextMenu.IsOpen = true;
}
仍未正确放置,您可以使用ContextMenu
和ContextMenu.HorizontalOffset
属性设置展示位置。有关详细信息,请查看MSDN上的ContextMenu.HorizontalOffset Property和ContextMenu.VerticalOffset Property页面。