GcApplicationZoom実行結果の確認
GcApplicationZoomを追加したWindowsフォームアプリをビルドし、EXEファイルに対するショートカットをタスクバーにピンしておいてからWindowsストアアプリのシミュレータを起動します。
Windowsフォームに2本指で触れて指の間隔を広げると、Windwosフォームのサイズが変わることなく、中のコントロールが拡大されます。また、指をパンすれば表示領域を移動できます。
GcApplicationZoomを適用するときの考慮点
GcApplicationZoomコンポーネントの対象はWindowsフォームのみなので、ダイアログボックスには適用されません。例えば、色の選定ダイアログを呼び出してホールドしたときの動きは次のようになります。
リサイズで大きくする
(※サンプルファイルの「CZ1308Resize」に対応)
CZ1308Zoomサンプルでは、Windowsフォームの大きさを変えずに中だけズームしてスクロールしやすくして、スマホ感覚でWindowsフォームのコントロールの大きさをタッチしやすい大きさに変更しました。この手法は全画面表示が多いWindowsフォームによる業務アプリに適した方法です。
しかし全画面表示ではなく、Windowsフォームの大きさを大きくできる余地が残っている時には、Windowsフォームの大きさを変えずに中を拡大するのは少々もったいないような気がします。そのようなときは、GcApplicationZoomやGcZoomのInnerPanelLayoutModeプロパティの値をMiddleCenterにすることで、Windowsフォームの大きさに応じて中のコントロールが自動的に拡大縮小できるようになります。
もちろん自動拡大した状態でさらに2本指でタッチしてから指を広げることで、中のコントロールだけ拡大することも可能です。このアプローチは実際に使ってみると非常に快適で、タッチパネル対応に伴って高解像度の端末に変わったときにも重宝します。
まとめ
MultiTouchを使って、いかに少ない手数でタッチ対応にするかを確認してみました。多少の考慮は必要ですが、基本的にはかなり手間いらずで効果的な対応がとれるという印象を持ちました。
今回取り上げたコンポーネント以外にも、MultiTouchにはGcZoomPanelコンポーネント、GcMultiScaleImageコントロール、GcTouchEventProviderコンポーネントなどがあります。これらを使うことでさらに細かな制御ができますし、よりタッチで使いやすいWindowsフォームアプリに作り替えることも可能です。もし今回紹介した方法を使うことで、タッチ対応に許された工数に余裕ができたら、GcTouchEventProviderコンポーネントを使った拡張も検討してみてください。このコンポーネントを使うことでタップ、ダブルタップ、ホールドなどをイベントとして取得でき、タッチ専用の処理への分岐が可能になります。これまで以上にきめ細やかなタッチ用ロジックを呼び出せるようになるので、ぜひお試しください。