首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF ContextMenu位置不正确

WPF ContextMenu位置不正确
EN

Stack Overflow用户
提问于 2015-08-08 04:49:45
回答 1查看 2.2K关注 0票数 2

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

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

代码语言:javascript
运行
复制
contextMenu.Placement = PlacementMode.AbsolutePoint;
contextMenu.HorizontalOffset = args.X;
contextMenu.VerticalOffset = args.Y;
contextMenu.IsOpen = true;

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

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

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

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

EN

回答 1

Stack Overflow用户

发布于 2015-09-20 12:12:20

我不确定为什么它会在AbsolutePoint上表现成这样。但是,如果您想将上下文菜单放在鼠标指针的尖端,您有没有尝试过

代码语言:javascript
运行
复制
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将定位上下文菜单"...relative到鼠标光标的尖端,并在一个偏移量...“。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31886415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档