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

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

【问题讨论】:

标签: windows-runtime windows-8.1 windows-10


【解决方案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);

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多