2016-04-14 7 views
1

私は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.GetForCurrentView().ResolutionScale; 

私は常に100%返されます。幅と高さを画面解像度に変換するのには役に立たない。私はWindows 8.1ユニバーサルで解決を得る必要があります。それは私のために非常に重要です。
だから私はWindows 8.1ユニバーサルで画面解像度を取得できない場合、どのように異なる画面解像度のフォントをスケールできますか。他社のプログラマーはこの問題に対して何をしていますか?
私を助けることは可能ですか?
悪い英語をおかけして申し訳ありません。
ありがとうございます。

答えて

0

あなたは論理的な1インチあたりのピクセル数をこのように得ることができます。

double dpi = DisplayInformation.GetForCurrentView().RawDpiY; 

それはディスプレイモニタのy軸に沿ってインチあたりの生のドット(DPI)を取得し、あなたが二重に二つのディスプレイを持っている場合は0を返します。モード。

はあなたが使用することができますphisical画面サイズを取得するには:

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

取得するためのピクセルは、これを試してみてください。

WP8.1とUWPのためだ
var scaleFactor = DisplayInformation.GetForCurrentView().RawPixelsPerViewPixel; 
double w=screenWidth*scaleFactor; 
double h=screenheight*scaleFactor; 

。 Windowsの場合8.1ストアアプリTry ResolutionScale:

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

お返事ありがとうございます。 scaleFactorのようなものが必要ですが、Windows Phone 8.1でのみ動作します。 screenDiagonalを「1366 * 768」のような解像度に変換するにはどうすればよいですか?私を助けることは可能ですか? – Amin

+0

Windowsストアアプリケーション用ResolutionScale –

+0

どうすればResolutionScaleを使用できますか?それは私のために100%を返します。それは100/100 = 1を意味するので、w = screenWidth * 1を2倍しなければならない。しかしそれは真実ではありません。それは私の画面解像度を返しませんか?私はそれを真実に使うかしないか? – Amin

関連する問題