【发布时间】:2015-06-09 11:48:08
【问题描述】:
当我的应用程序在不同的计算机上运行时,我发现 Popup 控件的位置不一致。我将 Placement 设置为 AbsolutePoint 并体验到弹出窗口在 2 台计算机上与弹出窗口的右上角对齐,但在另一台计算机上与弹出窗口的左上角对齐(在每台计算机上运行相同的应用程序时)。
我使用 HorizontalOffset 和 VerticalOffset 依赖属性来定位弹出窗口,相对于屏幕的左上角坐标。
文档 (https://msdn.microsoft.com/en-us/library/bb613596%28v=vs.110%29.aspx) 显示弹出窗口对齐点应该在弹出窗口的左上角,目标区域是整个屏幕(因此目标原点在屏幕的左上角)。
认为这可能是 .Net 框架的变化或显示缩放因子的差异(不太可能,但仍然如此),我收集了以下信息,但我看不出这种行为的明显原因;
弹出窗口对齐点位于弹出窗口右上角的计算机是: 1).Net Framework 4.5.1 和 125% 的缩放因子 2).Net Framework 4.5.2和100%的缩放因子
弹出窗口对齐点与弹出窗口左上角的计算机是: 1).Net Framework 4.5.2 的比例因子未知(我需要访问它以再次检查)。
任何想法为什么展示位置不一致?这与屏幕的边界无关 - 弹出窗口不在任何边缘。
【问题讨论】:
-
这是搞砸一切的属性:msdn.microsoft.com/en-us/library/…