C# 上下文菜单位置
我有一个上下文菜单,可以通过按热键ctrl+菜单手动显示。因此,我使用此函数:C# 上下文菜单位置,c#,wpf,contextmenu,C#,Wpf,Contextmenu,我有一个上下文菜单,可以通过按热键ctrl+菜单手动显示。因此,我使用此函数: ContextMenu.IsOpen = true; 我在我的主窗口中调用这个。但它有一些奇怪的效果 如果只按菜单键,菜单ALWASY出现在屏幕的中间 如果我手动调用菜单,它总是出现在左上角 我的菜单是: <Window.ContextMenu> <ContextMenu Placement="Center"> <MenuItem IsCheckable="Fa
ContextMenu.IsOpen = true;
我在我的主窗口中调用这个。但它有一些奇怪的效果
<Window.ContextMenu>
<ContextMenu Placement="Center">
<MenuItem IsCheckable="False" Name="item2" Click="MenuItem_Click" Header="{DynamicResource countDownNotificationOn}"/>
</ContextMenu>
</Window.ContextMenu>
但是不起作用。您需要设置
上下文菜单的PlacementTarget
属性:
if (element.ContextMenu != null )
{
element.ContextMenu.PlacementTarget = element;
element.ContextMenu.IsOpen = true;
}
如果在此之后,ContextMenu
仍未正确放置,则可以使用ContextMenu.horizontalpoffset
和ContextMenu.VerticalOffset
属性设置放置。有关更多信息,请查看MSDN上的和页面。谢谢,它很有效。我想如果我把位置放在xaml部分就足够了。我很高兴能帮上忙。如果这个问题有助于你解决问题,请“勾选”这个问题作为正确答案。
if (element.ContextMenu != null )
{
element.ContextMenu.PlacementTarget = element;
element.ContextMenu.IsOpen = true;
}