タブレット モード ON の Windows 10 モーダル ダイアログ動作について


こんにちは、Platform SDK (Windows SDK) サポートチームです。
Windows 10 を タブレット モード ON で使用している時のモーダル ダイアログ動作についてご案内します。

 

現象

バージョン 1511 (OS ビルド 10586.0) までの Windows 10 を タブレット モード ON で使用していると、アプリケーションが表示したモーダル ダイアログが親ウィンドウの背面に表示される現象が発生します。
モーダル ダイアログが閉じるまでは親ウィンドウに制御が返らないため、ユーザーはアプリケーションを操作できなくなります。

本現象は、Win32 や WPF 等のデスクトップ アプリケーションにおいて発生します。
また、Windows 10 Anniversary Update (バージョン 1607 (OS ビルド 14393.0)) では発生しません。

 

回避策

バージョン 1511 (OS ビルド 10586.0) までの Windows 10 に対する回避策として、以下の三つの方法が確認されています。

 

  1. Alt + Tab キーを押下して一旦他のアプリを前面に表示してから、再度 Alt + Tab キーを押下してモーダル ダイアログを表示します。

  2. Windows 10 Anniversary Update (バージョン 1607 (OS ビルド 14393.0)) にアップグレードします。
    Windows 10 Anniversary Update へのアップグレードに関しては、弊社 Web サイトにても FAQ を公開しておりますのでご覧くださいませ。

        Windows Update: FAQ
        < https://support.microsoft.com/ja-jp/help/12373/windows-update-faq >

  3. アプリケーションを開発する際に、モーダル ダイアログのウィンドウ スタイルに WS_POPUP スタイルを与えます。
       (WPF アプリの場合は、モーダル ウィンドウの Window.ShowInTaskbar プロパティを FALSE に設定します)

 

制限事項

前述した三つの回避策の内、2. と 3. にはそれぞれ以下の制限事項があることが確認されています。

 

2. の回避策の制限事項

表示されたモーダル ダイアログの位置を、ユーザー操作で変更する (モーダル ダイアログを移動する) ことができません。
アプリケーションを開発する際に、予め表示するダイアログの位置を調整しておくことをお勧めいたします。

 

3. の回避策の制限事項

モーダル ダイアログの動作が、以下の二つの点で変化します。

    ・ モーダル ダイアログがタスクバーに表示されなくなります。
    ・ Alt + Tab キーを押下しても、モーダル ダイアログがウィンドウのリストに表示されなくなります。

 

関連資料

Window.ShowInTaskbar Property
< https://msdn.microsoft.com/en-us/library/system.windows.window.showintaskbar.aspx >

Window Styles
< https://msdn.microsoft.com/en-us/library/windows/desktop/ms632600.aspx >

Window.ShowDialog Method ()
< https://msdn.microsoft.com/en-us/library/system.windows.window.showdialog.aspx >

Windows 10 の更新履歴
< https://support.microsoft.com/ja-jp/help/12387/windows-10-update-history >