我需要当前的显示分辨率。我怎么能得到这个?我知道Window.Current.Bounds
,但应用程序可以在Windows模式下工作。
答案 0 :(得分:0)
你是什么意思VisibleBounds不能在Deskptop上工作? 我尝试了我的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结构代表输出的有效显示模式。 e.g:
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);
如果您需要更多信息,请与我们联系。