当我试图通过我的4K分辨率获得实际分辨率时:
Screen.PrimaryScreen.Bounds.Width
或者:
System.Windows.SystemParameters.PrimaryScreenWidth
它将显示分辨率2560x1440。这很奇怪 几次显示正确的分辨率3840x2160。但我不知道它是如何可能的。
答案 0 :(得分:0)
问题是因为Windows尝试呈现没有任何dpi管理的应用程序。所以Windows假装它正在另一个分辨率上运行应用程序。 如果您使用主要版本大于6.0的Windows操作系统,则可以使用以下功能:
private enum ProcessDPIAwareness
{
ProcessDPIUnaware = 0,
ProcessSystemDPIAware = 1,
ProcessPerMonitorDPIAware = 2
}
[DllImport("shcore.dll")]
private static extern int SetProcessDpiAwareness(ProcessDPIAwareness value);
private static void SetDpiAwareness()
{
if (Environment.OSVersion.Version.Major >= 6)
{
SetProcessDpiAwareness(ProcessDPIAwareness.ProcessPerMonitorDPIAware);
}
}