テクニカルプレビューとして公開が始まったWindows 10について今回紹介していくが、このテクニカルプレビューでは、SDKが公開されていないため、内部的な変更をうかがい知ることはできず、あくまでも画面などを観察した結果の考察である。
ストアアプリの拡大縮小などが可能になるも
基本的にはこれまでのWindowsでも可能だった機能
スタートメニューの追加やデスクトップへのストアアプリの表示など、一見、大きく変更されたように見える。しかし、もともと、ストアアプリが動作していたモダンUI環境は、旧来のWinAPIの上に作られていて、単にデスクトップの上でフルスクリーンでストアアプリが表示されていただけだった。
たとえば、現在のWindows 8.1 Updateでも、タスクマネージャを「常に手前に表示」と設定すると、ストアアプリの上に表示される。これはストアアプリもデスクトップ(やウィンドウ)も同じ画面に重ねて表示しているだけで、ストアアプリのほうが手前で全画面表示だったからだと思われる。
Windows 8.1 Updateでは、ストアアプリにタイトルバーが表示されるようになったが、さらにウィンドウの縦横のリサイズ機能を有効にすることで、Windows 10の機能が実現されているのではないかと思われる。もっとも過去にはストアアプリを表示するシェアウェアも存在していた。
また、もともとWindowsでは、タイトルバーやウィンドウの周囲のボーダーは、アプリケーションではなく、Windowsが描画を行なっていた。一般的にこの部分の管理は、「ウィンドウマネージャ」と呼ばれるソフトウェアが受け持つ機能で、アプリケーション自体とは切り離してあるのが普通だ。
初期のWindowsでは、描画速度を稼ぐために描画用のドライバ内でタイトルバーを描画するという涙ぐましい努力が行われていたが、描画速度が向上した最近のWindowsでは、GUI関連に関わるUSER.EXEモジュールがタイトルバーなどを制御している。
さらに最近では、タイトルバーの領域に重ねて何かを表示することも可能で、たとえば、Office 2013やIEなどのマイクロソフト製のアプリケーションでもタイトルバーが標準と違った表示になっている。まれに、過負荷などでアプリケーションの描画処理が遅れたときに、一瞬、タイトルバーが表示されることがある。
そう考えると、この部分はさほど大きな手直しで実現されているようには見えない。スタート画面とスタートメニューの機能切替に関しては、サインオフや再起動が必要となっているが、これは、おそらく、Windowsで「シェル」となっているエクスプローラーの機能を切り替えるためだと思われる。
ストアアプリのウィンドウ表示で変わるもの
これまで、ストアアプリは、全画面を占有するか、スナップ機能により画面を左右に分割して複数のストアアプリを表示することしかできなかった。ストアアプリが動作する最低解像度はXGA(1024×768ドット)で、Windows 8.1では横方向の最小解像度は500ドット(8.0対応アプリは320ドット)とされていたが、縦方向の解像度を縮めることはできなかった。つまり、ストアアプリは最低でも横方向320または500ドット、縦方向768ドットという前提で作られていた。
こうした条件が設けられたのは、ストアアプリの基本レイアウトが横または縦の1方向のみのスクロールを前提とした構造になっていたからだ。特に標準で搭載されるアプリについては、ほとんどが横スクロール前提で作られており、そのためのGUI基本部品も提供されている。
もちろん、地図アプリのように縦横自由にスクロールするというアプリを作ることは可能だ。しかし、こうした例外を除けば、デスクトップアプリケーションのようにウィンドウサイズに合わせて、縦横にスクロールバーを表示するような構造は推奨されておらず、画面サイズに合わせて行なわれるスクロールは縦または横方向のどちらかであることが望まれていた。
Windows 8.0のときにタブレットなどの最低ラインとされた1366×768ドットは、縦方向がXGAと同じで、2つのストアアプリをスナップ表示したとき、片方が320ドットで他方が1024ドット、アプリケーション間の区切りが22ドットで合計1366ドットという組み合わせのみが可能だっだ。これはストアアプリに対して、横幅320ドットでの縮小表示モードか、1024ドット以上の通常表示しか認めていなかったからだ。
Windows 8.1で、スナップ位置を自由に変更できるようになったが、横幅は最低500ドットとなった(ただし8.0対応の320ドット幅の表示は有効)。つまり、8.1対応のストアアプリは、横幅は最低500ドット、縦方向は768ドットという前提条件で作られていた。
Windows 8.1 Updateでは、タイトルバーやタスクバーの表示が行なわれたが、これらは、ストアアプリと重なって表示されている。このため、Windows 8.1 Update対応のストアアプリも500×768ドットが最低サイズという前提で開発されている。
Windows 10では、ストアアプリのウィンドウ表示が行なわれるとともに、ユーザーからみえるモダンUI環境という表示場所がなくなり、デスクトップ上のフルスクリーン表示や左右の分割表示がこれを代用するようになった。
このとき、現行のストアアプリに対しては、ウィンドウサイズ変更に制限があるようだ。テクニカルプレビューでは、ストアアプリのウィンドウには、周囲に1ドットの枠が表示され、ウィンドウの横幅は502ドット(枠を除くと500ドット)が最低でも確保されるようだ。
縦方向も、最小値があり、あるサイズ以上には小さくすることができない。だが、ウィンドウ表示となったことで、従来最低768ドットに固定されていたウィンドウの高さの最小値は変更されているようだ。ウィンドウ状態では、これ以上小さくならない最小サイズがあるが、dpi設定や縦方向の解像度などで違いが出る。
1280×800ドット、1600×900ドットのマシンでdpi設定を変えて、最小となるウィンドウサイズを測定したのが、下の表だ。結果としてはウィンドウサイズの最小は662ドット(クライアントエリアとしては660ドット)であり、従来のモダンUI環境の最低値である768ドットよりも小さい。
dpi設定 | 画面縦 | ウィンドウ縦最小値 | ウィンドウ縦最小値(キーボードあり) | タスクバーの高さ | タイトルバーの高さ |
---|---|---|---|---|---|
100% | 800 | 662 | 400 | 40 | 29 |
100% | 900 | 830 | 510 | 40 | 29 |
125% | 800 | 669 | 400 | 48 | 29 |
125% | 900 | 837 | 510 | 48 | 29 |
150% | 900 | 676 | 510 | 58 | 30 |
さらにタッチキーボードを最大表示した場合、デスクトップ領域そのものが縮小されため、ストアアプリの縦方向はさらに小さくなる。実測したところウィンドウサイズは400ドット(1280×800ドット100%表示)まで縮小されている。
縦方向にスクロールするアプリの場合には、ある程度カバーできるが、スクロールしない領域や横方向にスクロールするアプリでは、表示が見えなくなるところが出てくる。タッチキーボードを隠せばウィンドウサイズは回復するので、一時的なものと考えていいのだろうが、アプリのレイアウトなどを考える場合の前提条件としては、Windows 10以降は、768ドットよりも小さくなることを想定することになりそうだ。
この連載の記事
-
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた -
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る - この連載の一覧へ