2016-04-14 4 views
1

Я искал много для поиска разрешения моего приложения Windows 8.1 Universal.
Я знаю, что мы можем получить высоту и ширину экрана с:Получить разрешение в Windows 8.1 Universal

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 универсальный, так как я могу масштабировать шрифты для разного разрешения экрана. Что другие программисты компании делают для этой проблемы?
Можно ли мне помочь?
Прошу прощения за плохой английский.
Спасибо.

ответ

0

Вы можете получить пикселей на логический дюйм таким образом:

double dpi = DisplayInformation.GetForCurrentView().RawDpiY; 

он получает сырье точек на дюйм (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 Store попробуйте ResolutionScale:

ResolutionScale resolutionScale = DisplayInformation.GetForCurrentView().ResolutionScale; 
double scaleFactor = (double)resolutionScale/100.0; 
+0

Спасибо за ответ. То, что мне нужно что-то вроде scaleFactor Но это работает только для Windows-телефона 8.1. Как преобразовать screenDiagonal в разрешение следующим образом: «1366 * 768»? Можно ли мне помочь? – Amin

+0

для приложений магазина Windows попробуйте использовать ResolutionScale –

+0

Как использовать ResolutionScale. Он возвращает мне 100%. это означает 100/100 = 1, поэтому мне нужно удвоить w = screenWidth * 1; Но это не так. Он не возвращает разрешение экрана ?! Я использую это верно или нет? – Amin