【发布时间】:2015-08-07 20:49:45
【问题描述】:
我一直在尝试将上下文菜单添加到通知图标(系统托盘图标)。 这是我自己围绕原生 Shell_NotifyIcon 函数的自定义 WPF 包装器。
我一直在使用以下代码来显示上下文菜单:
contextMenu.Placement = PlacementMode.AbsolutePoint;
contextMenu.HorizontalOffset = args.X;
contextMenu.VerticalOffset = args.Y;
contextMenu.IsOpen = true;
args.X 和 args.Y 是单击通知图标时鼠标的绝对屏幕坐标(我已验证它包含正确的鼠标位置)。
由于某种原因,上下文菜单显示在鼠标位置上方和左侧大约 5-7 个像素处:
系统托盘上其他图标的上下文菜单会准确显示鼠标所在的位置。
我搜索了 ContextMenu 的所有可用属性,但似乎没有任何东西可以修复它。 我错过了什么吗? 我总是可以手动调整 7 个左右像素,但如果有更好的方法,我宁愿做任何可能的方法。
【问题讨论】:
-
我的第一个猜测是 ContextMenu 上有一个默认边距。您是否尝试过将边距显式设置为 0?
-
是的,我已经尝试将 Margin 设置为 0。没有区别。 :(
标签: c# wpf contextmenu offset