获取物理屏幕(显示)分辨率。 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 应用商店应用的主要内容,如果未能解决你的问题,请参考以下文章