當我的應用程序在不同的計算機上運行時,彈出控件的放置位置不一致。我將「展示位置」設置爲「絕對點」,並體驗彈出窗口在兩臺計算機上對齊到彈出窗口的右上角,但彈出窗口在其他一臺計算機的左上角(在每臺計算機上運行相同的應用程序時)。當Placement = AbsolutePoint時,WPF Popup的對齊點不一致(右上或左上)
我使用HorizontalOffset和VerticalOffset依賴項屬性(相對於屏幕的左上角座標)定位彈出窗口。
文檔(https://msdn.microsoft.com/en-us/library/bb613596%28v=vs.110%29.aspx)顯示彈出對齊點應位於彈出窗口的左上角,目標區域是整個屏幕(並且目標原點位於屏幕的左上角)。
認爲它可能是.Net框架的變化或顯示縮放因素的差異(不太可能,但仍然),我收集了以下信息,但我看不到這種行爲的明顯原因;
其中彈出對準的一點是要彈出的右上角的計算機是: 1).Net框架4.5.1和的125% 2).Net框架4.5.2縮放因子爲100%
縮放因子彈出對齊點位於彈出窗口左上角的計算機是: 1).Net Framework 4.5.2具有未知縮放因子(我需要訪問它才能再次檢查)。
任何想法爲什麼配置不一致?這與屏幕的邊界無關 - 彈出不在任何邊緣附近。
您可以感謝微軟:http://stackoverflow.com/questions/4043878/why-is-my-popup-showing-opposite-the-placement-property-on-some-machines – 2015-07-03 12:30:14
這是屬性螺絲所有東西:https://msdn.microsoft.com/en-us/library/system.windows.systemparameters.menudropalignment.aspx – 2015-07-03 12:30:29