WPF每监视器DPI感知对话框定位问题
我有一个WPF.NET4.7应用程序,每个监视器都支持DPI。 我按照所解释的解决方案启用DPI意识 我想在主窗口的左上角打开一个对话框,并执行以下操作:WPF每监视器DPI感知对话框定位问题,wpf,dpi-aware,Wpf,Dpi Aware,我有一个WPF.NET4.7应用程序,每个监视器都支持DPI。 我按照所解释的解决方案启用DPI意识 我想在主窗口的左上角打开一个对话框,并执行以下操作: var window = new Window(); window.Owner = mainWindow; window.WindowStartupLocation = WindowStartupLocation.Manual; window.Left = mainWindow.Left; window.Top = mainWind
var window = new Window();
window.Owner = mainWindow;
window.WindowStartupLocation = WindowStartupLocation.Manual;
window.Left = mainWindow.Left;
window.Top = mainWindow.Top;
window.Show();
我有两个不同DPI刻度的监视器
如果我从VisualStudio运行该应用程序,一切正常:无论主窗口是哪个监视器,对话框始终位于主窗口的左上角
但是,如果从Windows资源管理器运行应用程序,则对话框仅正确定位在启动应用程序时Windows资源管理器所在的监视器上
为什么会出现这种不同的行为,以及如何在从Windows资源管理器运行应用程序时正确定位对话框?启动任务管理器。增加“新闻部意识”一栏。使用Visual Studio启动应用程序并检查DPI意识。然后,从Windows资源管理器启动应用程序。您是否看到DPI感知的两个不同值?启动任务管理器。增加“新闻部意识”一栏。使用Visual Studio启动应用程序并检查DPI意识。然后,从Windows资源管理器启动应用程序。您是否看到DPI意识的两个不同值?