国安Tweetプログラム・コードはリスト4のようになります。INotifyPropertyChangedインターフェースをインプリメントしておく。LeapSwipeイベントに、SwipeActionベントハンドラ—を追加する。PropertyChangedイベント。RaseEventでプロパティ名で初期化されたPropertyChangedイベントを発生させる。ClassMainWindow.xaml内に[UpDownModel]を取り込む。名前空間として「xmlns:local="clr-namespace:FingerRecognizeUpDown"」を定義します。次にプロパティ要素内に「」と記述します。MainWindow.xaml内に「UpDownModel」クラスが取り込まれます。リスト5のコードのようになります。※注意プロパティ要素内に「」と記述すると、「」の下に波線が表示され、マウスカーソルを持っていくと、「指定されたファイルが見つかりません。」のエラーが表示されますが、実行には問題はないので、無視しても構いません。・・・・以下コード略・・・・</Window>プログラム・コード(MainWindow.xaml.vb)指の個数を表示させる処理MainWindows.xaml.vbファイルを見ていきましょう(リスト6)。新しいControllerクラスのインスタンスであるleapメンバー変数を宣言します。次に、インク・ストローク(=System.Windows.Ink名前空間のStrokeクラスで表現される、WPF上でのインクの線)の外観を指定する新しいDrawingAttributesクラス(System.Windows.Ink名前空間)のインスタンスである「touchIndicatorメンバー変数」を宣言します。MainWindow_Loadedメソッドの処理MainWindow_Loadedメソッド(=メイン・ウィンドウのLoadedイベントのハンドラー)では、MainWindowが読み込まれたときの処理を実装します。AddHandlerステートメントを使って、構成ツリーのオブジェクトがレンダリングされる直前に発生する「CompositionTarget.Renderingイベント」に対するイベント・ハンドラーとしてUpdateメソッドを指定します(※Updateメソッドの実装内容は後述)。インク・ストロークの外観を表す、DrawingAttributesオブジェクトのインスタンス「touchIndicator」のWidthプロパティとHeightプロパティにそれぞれ「30」を指定します。スタイラスの形状を指定するStylusTipプロパティに「StylusTip.Ellipse」を指定して円形とします。Motionの上で指をかざすと、かざした指の本数が5本で、30px(px=ピクセル)の円が表示されるようになります。次は、CompositionTarget.Renderingイベント・ハンドラーであるUpdateメソッドの処理です。スタブを生成]をクリックすると、Updateメソッドのひな型が追加されます。次に、そのメソッド内を実装していきます。「paintCanvas」という名前のInkPresenter内をクリアします。この処理を行っていないと、Updateメソッドは常に呼び出されているため、円を画面上で動かすと、円の軌跡が残ったまま表示されてしまいます。そのため、InkPresenter内をクリアする必要があります。Motionのフレームを表すFrame型(Leap名前空間)の変数「frame」を宣言します。InteractionBox型(Leap名前空間)の変数「interactionBox」を宣言し、そこにleap.Frame.InteractionBoxプロパティからInteractionBoxオブジェクトを取得します。Motionで認識できる可動範囲となります。InteractionBoxオブジェクトを使用することで、指やツール(=ペンなど)の位置を実際のディスプレイの座標系に変換できます。Motionでのタッチ操作はどう開発するのか?」を参照してください。Leap.Frame.Pointablesプロパティで得られるPointableListオブジェクト内を変数「Pointable」で反復処理しながら、1つずつPointableオブジェクトを処理し、それぞれのタッチ位置を取得していきます。interactionBoxオブジェクトのNormalizePointメソッドに引数としてPointable.StabilizedTipPositionプロパティ値を渡し、ポインター上の位置を取得します。windowHeightのコードで示す計算式を使用してこのウィンドウ内のタッチ・ポイントの2D座標を得ることができます。paintCanvas.Strokes.Add(touchStroke)と記述して、ディスプレイ上に円形のタッチ・ポイントを表示します。実際のコードはリスト6になります。ClassこれでVS2012のメニューから[デバッグ]−[デバッグ開始]と実行すると、5本の指のアップ・ダウンで円が拡大縮小表示されます。リスト5を見ていただくとわかりますが、画面のWidthに1366、Heightに768と指定し、全画面表示にはしていません。※注意サンプルをダウンロードして動かす場合は、「LeapCSharp.NET4.0.dll」や「LeapCSharp.dll」、「Leap.dll」を読者の方自身のフォルダ内にあるDLLファイルに指定し直さなければ動かない可能性があるので、動かない場合は再指定してください。Storeがあります。筆者は無料のアプリを2つほどダウンロードして試してみました。「Flocking」は下記の図のように、指の動きに合わせて魚群が移動する美しいアプリです。VELOCITY」というシューティングゲームです。プログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。活動に本格的に参加、.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。