mar*_*cel 5 c# wpf contextmenu
我有一个上下文菜单,通过按热键ctrl +菜单手动显示.因此我使用此功能:
ContextMenu.IsOpen = true;
Run Code Online (Sandbox Code Playgroud)
我在主窗口中调用它.但它有一些奇怪的效果.
我的菜单就是这个:
<Window.ContextMenu>
<ContextMenu Placement="Center">
<MenuItem IsCheckable="False" Name="item2" Click="MenuItem_Click" Header="{DynamicResource countDownNotificationOn}"/>
</ContextMenu>
</Window.ContextMenu>
Run Code Online (Sandbox Code Playgroud)
使用上面的xaml放置也不起作用.因此我将窗口设置为
ContextMenuService.Placement="Center"
Run Code Online (Sandbox Code Playgroud)
但是不起作用.
您需要设置以下PlacementTarget属性ContextMenu:
if (element.ContextMenu != null )
{
element.ContextMenu.PlacementTarget = element;
element.ContextMenu.IsOpen = true;
}
Run Code Online (Sandbox Code Playgroud)
如果在此之后ContextMenu仍未正确放置,则可以使用ContextMenu.HorizontalOffset和ContextMenu.VerticalOffset属性设置放置.有关详细信息,请查看MSDN 上的ContextMenu.HorizontalOffset属性和ContextMenu.VerticalOffset属性页.
| 归档时间: |
|
| 查看次数: |
3733 次 |
| 最近记录: |