获取物理屏幕(显示)分辨率。 Windows 应用商店应用

Posted

技术标签:

【中文标题】获取物理屏幕(显示)分辨率。 Windows 应用商店应用【英文标题】:Get physical screen(display) resolution. Windows Store App 【发布时间】:2016-01-18 23:23:29 【问题描述】:

我需要当前的显示分辨率。我怎样才能得到这个?我知道Window.Current.Bounds,但是应用程序可以在windows模式下运行。

【问题讨论】:

Get Screen Resolution in Win10 UWP App的可能重复 感谢您的回答,但此解决方案适用于 Windows Phone(Mobile)。在 windows 桌面 VisibleBounds 不可用。 这里是:***.com/questions/10828179/… 【参考方案1】:

VisibleBounds 不能在桌面上运行是什么意思? 我在我的 win10 UWP 程序中尝试过,它运行良好。我可以像下面这样获得我的桌面分辨率:

  var bounds = ApplicationView.GetForCurrentView().VisibleBounds;
  var scaleFactor = DisplayInformation.GetForCurrentView().RawPixelsPerViewPixel;
  var size = new Size(bounds.Width * scaleFactor, bounds.Height * scaleFactor);

此外,如果您在商店应用程序中使用 DX,您可以创建一个 IDXGIFactory 对象并使用它来枚举可用的适配器。然后调用 IDXGIOutput::GetDisplayModeList 来检索 DXGI_MODE_DESC 结构的数组和数组中的元素数。每个 DXGI_MODE_DESC 结构代表输出的有效显示模式。例如:

   UINT numModes = 0;
   DXGI_MODE_DESC* displayModes = NULL;
   DXGI_FORMAT format = DXGI_FORMAT_R32G32B32A32_FLOAT;

    // Get the number of elements
    hr = pOutput->GetDisplayModeList( format, 0, &numModes, NULL);

    displayModes = new DXGI_MODE_DESC[numModes]; 

    // Get the list
    hr = pOutput->GetDisplayModeList( format, 0, &numModes, displayModes);

如果您需要更多信息,请告诉我。

【讨论】:

以上是关于获取物理屏幕(显示)分辨率。 Windows 应用商店应用的主要内容,如果未能解决你的问题,请参考以下文章

获取可用的屏幕尺寸

Windows10高分辨率屏幕下应用字体模糊的解决方法

项目资料准备

win7屏幕分辨率总是自动切换

关于屏幕尺寸而不是分辨率的媒体查询

Unity3d UGUI基于屏幕尺寸的自适应