C# 在Windows 8.1 Universal中获得分辨率

C# 在Windows 8.1 Universal中获得分辨率,c#,windows-8.1-universal,C#,Windows 8.1 Universal,我搜索了很多查找我的Windows 8.1通用应用程序的分辨率。 我知道我们可以通过以下方式获得屏幕的高度和宽度: var screenHeight = Window.Current.Bounds.Height; var screenWidth = Window.Current.Bounds.Width; 但这不是决心。我想得到值“1366*768”或“1920*1080”。我也知道ResolutionScale: var scaleFactor = DisplayInformation

我搜索了很多查找我的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中获得分辨率。这对我来说非常重要。
所以,如果我不能在Windows8.1Universal中获得屏幕分辨率,那么我如何为不同的屏幕分辨率缩放字体呢。其他公司的程序员是如何解决这个问题的?
能帮我吗?
我很抱歉英语不好。

谢谢

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

 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;

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

 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;

谢谢你的回答。我需要scaleFactor之类的东西,但它只适用于windows phone 8.1。如何将屏幕对角线转换为这样的分辨率:“1366*768”?是否可以帮助我?对于windows应用商店应用,请尝试使用ResolutionScale如何使用ResolutionScale。这对我来说是100%的回报。这意味着100/100=1,所以我必须将w=screenWidth*1加倍;但事实并非如此。它不返回我的屏幕分辨率?!我用的是真的还是假的?小5英寸手机和大笔记本电脑23英寸屏幕上的屏幕分辨率1920x1080是不一样的。在具有相同分辨率的不同设备上,您将获得不同的Window.Current.Bounds.Height和Width。分辨率比例是根据物理屏幕大小调整屏幕分辨率的百分比。请查看此链接或此链接,谢谢您的回答。我需要scaleFactor之类的东西,但它只适用于windows phone 8.1。如何将屏幕对角线转换为这样的分辨率:“1366*768”?是否可以帮助我?对于windows应用商店应用,请尝试使用ResolutionScale如何使用ResolutionScale。这对我来说是100%的回报。这意味着100/100=1,所以我必须将w=screenWidth*1加倍;但事实并非如此。它不返回我的屏幕分辨率?!我用的是真的还是假的?小5英寸手机和大笔记本电脑23英寸屏幕上的屏幕分辨率1920x1080是不一样的。在具有相同分辨率的不同设备上,您将获得不同的Window.Current.Bounds.Height和Width。分辨率比例是根据物理屏幕大小调整屏幕分辨率以便更好地查看的百分比请查看此链接或此链接