Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF每监视器DPI感知对话框定位问题_Wpf_Dpi Aware - Fatal编程技术网

WPF每监视器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

我有一个WPF.NET4.7应用程序,每个监视器都支持DPI。 我按照所解释的解决方案启用DPI意识

我想在主窗口的左上角打开一个对话框,并执行以下操作:

 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意识的两个不同值?