从 Outlook 应用程序获取 DPI
Getting DPI from an outlook application
我正在制作一个 outlook 插件,并试图在 outlook 的中心放置一个 window。
为了实现这一点,我曾经做过以下事情:
Outlook.Application olApp;
...
dynamic activeWindow = olApp.ActiveWindow();
wpf_ui_control.Left = activeWindow.Left + (activeWindow.Width / 2) - (wpf_ui_control.Width / 2);
wpf_ui_control.Top = activeWindow.Top + (activeWindow.Height / 2) - (wpf_ui_control.Height / 2);
当然,当 DPI 不是 100% 时,这被证明是无用的。
我看过几个从不同控件获取 DPI 的示例,但是 none 来自 outlook.explorer \ outlook.Inspect(.ActiveWindow() 的结果)。
在这种情况下,我将如何获取 DPI 或计算中心?
谢谢
这里实际上提出了一个很好的解决方案:
How can I get the DPI in WPF?
var dpiXProperty = typeof(SystemParameters).GetProperty("DpiX", BindingFlags.NonPublic | BindingFlags.Static);
var dpiYProperty = typeof(SystemParameters).GetProperty("Dpi", BindingFlags.NonPublic | BindingFlags.Static);
var dpiX = (int)dpiXProperty.GetValue(null, null);
var dpiY = (int)dpiYProperty.GetValue(null, null);
我正在制作一个 outlook 插件,并试图在 outlook 的中心放置一个 window。 为了实现这一点,我曾经做过以下事情:
Outlook.Application olApp;
...
dynamic activeWindow = olApp.ActiveWindow();
wpf_ui_control.Left = activeWindow.Left + (activeWindow.Width / 2) - (wpf_ui_control.Width / 2);
wpf_ui_control.Top = activeWindow.Top + (activeWindow.Height / 2) - (wpf_ui_control.Height / 2);
当然,当 DPI 不是 100% 时,这被证明是无用的。
我看过几个从不同控件获取 DPI 的示例,但是 none 来自 outlook.explorer \ outlook.Inspect(.ActiveWindow() 的结果)。
在这种情况下,我将如何获取 DPI 或计算中心?
谢谢
这里实际上提出了一个很好的解决方案: How can I get the DPI in WPF?
var dpiXProperty = typeof(SystemParameters).GetProperty("DpiX", BindingFlags.NonPublic | BindingFlags.Static);
var dpiYProperty = typeof(SystemParameters).GetProperty("Dpi", BindingFlags.NonPublic | BindingFlags.Static);
var dpiX = (int)dpiXProperty.GetValue(null, null);
var dpiY = (int)dpiYProperty.GetValue(null, null);