タッチに対応したイベントを設定する
タッチ操作に応じたイベントを受け取ってプログラム側で処理を行う方法を紹介します。
MultiTouchを利用することで受け取れるイベントは、UWPやWindows 8のストアアプリと似ており、左記の開発経験があれば、違和感なく利用できる点も.NET開発者にとっては嬉しいポイントです。
GcTouchEventProvider
GcTouchEventProviderを使用すると、アプリケーションにタッチ操作によるイベントを発生させることができます。
発生させることができるイベントは、ダブルタップ(DoubleTapped)やホールド(Holding)以外にも、タッチ操作開始時の(ManipulationStarted)や操作中の情報を取得できるManipulationDeltaなどもあります。
GcTouchEventProviderの追加方法
GcTouchEventProviderを追加するには、上記「コントロールの追加」項目に従いGcTouchEventProviderをツールボックスに追加します。
デザインビューから画面にGcTouchEventProviderをドロップします。
画面に配置したタッチイベントを取得したいコントロールの「GcTouchEventProvider名のEnableTouchEvents」プロパティをTrueに設定します。
![EnableTouchEventsをTrueにする](http://cz-cdn.shoeisha.jp/static/images/article/9826/9826_018_s.gif)
画面に追加したGcTouchEventProviderのプロパティウィンドウから、取得したいイベントを設定します。
今回はタップした際に発生するTappedイベントを設定します。
![Tappedイベントを設定する](http://cz-cdn.shoeisha.jp/static/images/article/9826/9826_019_s.gif)
Form1.csに、以下のようにイベントハンドラーを記述します。
動作を確認するためにTappedイベントを取得するButtonコントロールに対して、クリックした際に発生するClickイベントも設定しておきます。
private void button1_Click(object sender, EventArgs e) { // クリック時のイベントを記載 System.Diagnostics.Debug.WriteLine("クリックされました"); } private void gcTouchEventProvider1_Tapped(object sender, GrapeCity.Win.MultiTouch.TappedEventArgs e) { // タッチ時のイベントを記載 System.Diagnostics.Debug.WriteLine("タップされました"); }
プロジェクトを実行すると、マウスでボタンをクリックした際はClickイベントが、指でタップした場合はClickイベントに加えてTappedイベントが発生していることが確認できます。Tappedイベントだけでなく、Clickイベントも発生する点に注意してください。