gpt4 book ai didi

c# - WPF 上下文菜单位置不正确

转载 作者:太空宇宙 更新时间:2023-11-03 13:02:42 25 4
gpt4 key购买 nike

我一直在尝试将上下文菜单添加到通知图标(系统托盘图标)。这是针对我自己的围绕 native Shell_NotifyIcon 函数的自定义 WPF 包装器。

我一直在使用以下代码来显示上下文菜单:

contextMenu.Placement = PlacementMode.AbsolutePoint;
contextMenu.HorizontalOffset = args.X;
contextMenu.VerticalOffset = args.Y;
contextMenu.IsOpen = true;

args.Xargs.Y 是点击通知图标时鼠标的绝对屏幕坐标(我已经验证它包含正确的鼠标位置)。

出于某种原因,上下文菜单显示在鼠标位置左上方大约 5-7 个像素处:

enter image description here

系统托盘上其他图标的上下文菜单会准确显示鼠标所在的位置。

我搜索了 ContextMenu 的所有可用属性,但似乎无法修复它。我错过了什么吗?我总是可以手动调整 7 个像素左右,但如果有更好的方法,我宁愿做任何可能的方法。

最佳答案

我不确定为什么 AbsolutePoint 会这样。但是如果你想把上下文菜单放在鼠标指针的尖端,你试过了吗

contextMenu.Placement = PlacementMode.MousePoint;
contextMenu.HorizontalOffset = 0;
contextMenu.VerticalOffset = 0;

MSDN ( https://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.placementmode%28v=vs.110%29.aspx ) 解释说,MousePoint 会将上下文菜单定位在“...相对于鼠标光标的尖端并在一个偏移量...”处。

关于c# - WPF 上下文菜单位置不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31886415/

25 4 0