CharmsBar (特に SearchPane) が開いたときに、アプリの一部のコントロールのサイズを変更したいと考えています。いくつかのテストを行ったところ、幅は通常 343 ですが、それよりも大きい場合もあります (解像度ではなく、画面のサイズによって異なります。少なくとも、エミュレーターを使用する場合)。
その値を取得するためのプログラム的な方法があるかどうか誰かが知っていますか?
CharmsBar (特に SearchPane) が開いたときに、アプリの一部のコントロールのサイズを変更したいと考えています。いくつかのテストを行ったところ、幅は通常 343 ですが、それよりも大きい場合もあります (解像度ではなく、画面のサイズによって異なります。少なくとも、エミュレーターを使用する場合)。
その値を取得するためのプログラム的な方法があるかどうか誰かが知っていますか?
幅は常に 346ですが、ズーム ファクターを適用して実際の幅をピクセル単位で取得する必要があります。これは、次を使用して実現できます。
double SearchPaneWidth() {
var scale = Windows.Graphics.Display.DisplayProperties.ResolutionScale;
switch (scale) {
case Windows.Graphics.Display.ResolutionScale.Scale100Percent:
return 1.0 * 346;
case Windows.Graphics.Display.ResolutionScale.Scale140Percent:
return 1.4 * 346;
case Windows.Graphics.Display.ResolutionScale.Invalid:
return 1.8 * 346;
default:
throw new Exception("Unknown resolution scale");
}
}