1

我搜索了很多以找到我的 Windows 8.1 通用应用程序的分辨率。
我知道我们可以通过以下方式获得屏幕的高度和宽度:

var screenHeight = Window.Current.Bounds.Height;
var screenWidth = Window.Current.Bounds.Width;   

但这不是分辨率。我想获得值“1366*768”或“1920*1080”。我也知道 ResolutionScale:

var scaleFactor = DisplayInformation.GetForCurrentView().ResolutionScale;

它总是 100% 回报给我。将宽度和高度转换为屏幕分辨率对我没有帮助。我需要在Windows 8.1 Universal中获得分辨率。这对我来说非常重要。
所以如果我无法在 Windows 8.1 通用中获得屏幕分辨率,那么我该如何缩放字体以适应不同的屏幕分辨率。其他公司的程序员为这个问题做了什么?
有可能帮助我吗?
我很抱歉英语不好。
谢谢。

4

1 回答 1

0

您可以通过这种方式获得每逻辑英寸的像素:

 double dpi = DisplayInformation.GetForCurrentView().RawDpiY;

它沿显示监视器的 y 轴获取每英寸的原始点数 (DPI),如果您有两个处于复制模式的显示器,它将返回 0。

要获得物理屏幕尺寸,您可以使用:

double screenDiagonal = Math.Sqrt(Math.Pow(screenWidth / dpi, 2) + Math.Pow(screenHeight / dpi, 2));

获取像素试试这个:

var scaleFactor = DisplayInformation.GetForCurrentView().RawPixelsPerViewPixel;
double w=screenWidth*scaleFactor;
double h=screenheight*scaleFactor;

这适用于 WP8.1 和 UWP。对于 Windows 8.1 应用商店应用,请尝试 ResolutionScale:

ResolutionScale resolutionScale = DisplayInformation.GetForCurrentView().ResolutionScale;
double scaleFactor = (double)resolutionScale / 100.0;
于 2016-04-14T12:35:46.040 回答