おはようございます、モノトーンです。
Windows 8.1 を常用していますが、プチフリ以外は特に問題なく使えている現状であります。色々とお話したいと思います。
概要
- Windows 8.1 でのスケーリング
- DPI を設計するときの参考値
1. Windows 8.1 でのスケーリング
1.1. 従来通りの “System Dpi”
1 つの指標として System Dpi というものがあります。その名の通り、XP 時代からあるやつです。XP、Vista はリブート、7 以後はログアウトで反映できます (もちろん Windows 8.1 も一部反映するのにログアウトが必要)。
こちらは、Windows 8 から本格的に使われている印象です。ただ、Surface Pro とか 125 % スケーリングとかになっていると思います? (たぶん) これは、従来の Windows は最低解像度として 1024x768 (XGA) を採用しているからです。Surface Pro のスケーリング 150% の論理解像度は 1280x720 になるため、これだと表示しきれないウィンドウが出てきてしまいます。したがって、スケーリングを 125% にすることで、1536x864 となり、これで仕様を満たすことができます。
Windows 8.1 から変わります。1024x720 が最低解像度となります。スーパーバーデフォルト height は 40 px なので、1024x680 に収まるようにウィンドウを設計してください。はい、これは従来の 16:9 デバイスの不便さを解消するためのものです。まあ、作業エリア糞狭くなるんですけど、苦肉の策でしょうねぇ…
1.2. Windows 8.1 から追加された “Monitor Dpi”
その名の通り、モニターごとの Dpi 値です。ここら辺の検証はまだ浅いので、後日プログラミング面からのアプローチはさせていただく予定です。
実験的に Windows 8.1 とテレビをつないで検証してみました。http://twitpic.com/d084cv
このようにモニターごとにウィンドウサイズが変わります。これに関して次のシナリオを考えてみます:
⑴ 内臓 (Primary) 100%、外部 (Secondary) 200% の場合
つまり、System Dpi = 100%、Primary Monitor Dpi = 100%、Secondary Monitor Dpi = 200% です。このとき、
① DPI を知らないアプリケーションでは、100% で表示します。200% 側に移動するとシステムが無理やりスケーリングします。
② System DPI のみを知っているアプリケーションでは、100% で表示します。200% 側に移動するとシステムが無理やりスケーリングします。
③ Monitor DPI をも知っているアプリケーションでは、アプリケーションが制御します。
逆に…
⑵ 内臓 (Primary) 200%、外部 (Secondary) 100% の場合
System Dpi = 200%、Primary Monitor Dpi = 200%、Secondary Monitor Dpi = 100% です。このとき、
① DPI を知らないアプリケーションでは、100% で表示します。200% 側ではスケーリングされます。
② System DPI のみを知っているアプリケーションでは、200% で表示します。100% 側に移動するとシステムが無理やりスケーリング (縮小) します。
③ Monitor DPI をも知っているアプリケーションでは、アプリケーションが制御します。
ということで、\Monitor DPI 対応しよう/
2. DPI を設計するときの参考値
Windows 8.1 から次の値がシステムデフォルトになる予定です。
サイズ | 解像度 | パネル PPI | OS DPI | スケーリング値 |
---|---|---|---|---|
10.6" | FHD (1920x1080) | 208 | 144 | 150% |
10.6" | FWXGA (1366x768) | 148 | 96 | 100% |
11.6" | WUXGA (1920x1200) | 195 | 144 | 150% |
11.6" | FWXGA | 135 | 96 | 100% |
13.3" | WUXGA | 170 | 144 | 150% |
13.3" | WQHD (2560x1440) | 221 | 192 | 200% |
13.3" | FWXGA | 118 | 96 | 100% |
15.4" | FHD | 143 | 120 | 125% |
15.6" | WQHD+ (3200x1800) | 235 | 192 | 200% |
17.0" | FHD | 130 | 120 | 125% |
23.0" | QFHD (3840x2160) | 192 | 192 | 200% |
24.0" | WQHD | 122 | 120 | 125% |
この表から見て取れること、それは「100%」「125%」「150%」「200%」しかないことです。Web ページ制作するときも、これだけの画像を用意すればいいです… (俺 175 % 用意してたんだよぉ… (´・ω・`))
総括
Windows 8.1 からモニターごとに DPI が扱えるようになって、内臓ディスプレイの高解像度化がさらに進みそうです。native での実装はたぶんフリーだと対応しないんでしょうね… ね… (俺はフリーでも対応するけどな…)
WPF はどうなるんですかね、やっぱりきっちり対応されるんでしょうねw
では! 次回は API について。