SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(MultiTouch)

「MultiTouch for Windows Forms 1.0J」で学ぶ、タッチ対応Windowsフォームアプリの作り方

  • X ポスト
  • このエントリーをはてなブックマークに追加

GcApplicationZoom実行結果の確認

 GcApplicationZoomを追加したWindowsフォームアプリをビルドし、EXEファイルに対するショートカットをタスクバーにピンしておいてからWindowsストアアプリのシミュレータを起動します。

図9 シミュレータによるWindowsフォームアプリの実行
図9 シミュレータによるWindowsフォームアプリの実行

 Windowsフォームに2本指で触れて指の間隔を広げると、Windwosフォームのサイズが変わることなく、中のコントロールが拡大されます。また、指をパンすれば表示領域を移動できます。

GcApplicationZoomを適用するときの考慮点

 GcApplicationZoomコンポーネントの対象はWindowsフォームのみなので、ダイアログボックスには適用されません。例えば、色の選定ダイアログを呼び出してホールドしたときの動きは次のようになります。

図10 ダイアログ表示
図10 ダイアログ表示

リサイズで大きくする

(※サンプルファイルの「CZ1308Resize」に対応)

 CZ1308Zoomサンプルでは、Windowsフォームの大きさを変えずに中だけズームしてスクロールしやすくして、スマホ感覚でWindowsフォームのコントロールの大きさをタッチしやすい大きさに変更しました。この手法は全画面表示が多いWindowsフォームによる業務アプリに適した方法です。

 しかし全画面表示ではなく、Windowsフォームの大きさを大きくできる余地が残っている時には、Windowsフォームの大きさを変えずに中を拡大するのは少々もったいないような気がします。そのようなときは、GcApplicationZoomやGcZoomのInnerPanelLayoutModeプロパティの値をMiddleCenterにすることで、Windowsフォームの大きさに応じて中のコントロールが自動的に拡大縮小できるようになります。

図11 InnerPanelLayoutModeプロパティを設定して実行
図11 InnerPanelLayoutModeプロパティを設定して実行

 もちろん自動拡大した状態でさらに2本指でタッチしてから指を広げることで、中のコントロールだけ拡大することも可能です。このアプローチは実際に使ってみると非常に快適で、タッチパネル対応に伴って高解像度の端末に変わったときにも重宝します。

まとめ

 MultiTouchを使って、いかに少ない手数でタッチ対応にするかを確認してみました。多少の考慮は必要ですが、基本的にはかなり手間いらずで効果的な対応がとれるという印象を持ちました。

 今回取り上げたコンポーネント以外にも、MultiTouchにはGcZoomPanelコンポーネント、GcMultiScaleImageコントロール、GcTouchEventProviderコンポーネントなどがあります。これらを使うことでさらに細かな制御ができますし、よりタッチで使いやすいWindowsフォームアプリに作り替えることも可能です。もし今回紹介した方法を使うことで、タッチ対応に許された工数に余裕ができたら、GcTouchEventProviderコンポーネントを使った拡張も検討してみてください。このコンポーネントを使うことでタップ、ダブルタップ、ホールドなどをイベントとして取得でき、タッチ専用の処理への分岐が可能になります。これまで以上にきめ細やかなタッチ用ロジックを呼び出せるようになるので、ぜひお試しください。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(MultiTouch)連載記事一覧
この記事の著者

初音玲(ハツネアキラ)

 国内SIerのSEでパッケージ製品開発を主に行っており、最近は、空間認識や音声認識などを応用した製品を手掛けています。 個人的には、仕事の内容をさらに拡張したHoloLensなどのMRを中心に活動しています。 Microsoft MVP for Windows Development ブログ:http://hatsune.hatenablog.jp/

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7337 2016/03/29 17:35

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング