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 軸に沿って生の 1 インチあたりのドット数 (DPI) を取得し、複製モードで 2 つのディスプレイがある場合は 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 に答える