WPF ContextMenu incorrect position
我一直试图将上下文菜单添加到通知图标(系统任务栏图标)。
这是我自己的自定义WPFpackage器,用于环绕本机Shell_NotifyIcon函数。
我一直在使用以下代码显示上下文菜单:
1 2 3 4 | contextMenu.Placement = PlacementMode.AbsolutePoint; contextMenu.HorizontalOffset = args.X; contextMenu.VerticalOffset = args.Y; contextMenu.IsOpen = true; |
由于某种原因,上下文菜单在鼠标位置的左上方大约显示5-7个像素:
系统托盘上其他图标的上下文菜单准确显示鼠标的位置。
我搜索了ContextMenu的所有可用属性,似乎没有什么可以解决的。
我想念什么吗?
我总是可以手动调整7个左右的像素,但是如果有更好的方法,我宁愿做任何可能的事情。
我不确定为什么它在AbsolutePoint中会表现出这种方式。但是,如果要将上下文菜单放在鼠标指针的尖端,是否尝试过
1 2 3 | contextMenu.Placement = PlacementMode.MousePoint; contextMenu.HorizontalOffset = 0; contextMenu.VerticalOffset = 0; |
MSDN(https://msdn.microsoft.com/zh-cn/library/system.windows.controls.primitives.placementmode(v=vs.110).aspx)解释了MousePoint将定位上下文菜单" ...相对于鼠标光标的尖端并偏移... "。