国安Tweetプログラム・コード(MainWindow.xaml.vb)では、次にプログラム・コード(MainWindows.xaml.vbファイル)を見ていきましょう。コードは4回のコードと似通っている部分については割愛します。4回のコード説明を参照してください。異なる部分のみ解説します。名前空間の読み込み「Leap」と「System.Windows.Ink」名前空間だけを読み込みます。次にメンバー変数を宣言します。APIの宣言も行います。APIを使用しています。「leap」、「touchIndicator」、「touchPoint」、「windowWidth」、「windowHeight」、「x」、「y」、「tx」、「ty」、「FingersCount」等のメンバー変数については4回と同じのため、そちらを参照してください。これ以外に、ImageXとImageYメンバー変数を宣言します(リスト2)。Double・・・コード略・・・・MainWindow_Loadedメソッドの処理MainWindow_Loadedメソッド(=メイン・ウィンドウのLoadedイベントのハンドラ)では、MainWindowが読み込まれた時の処理を実装します。AddHandlerステートメントを使って、構成ツリーのオブジェクトがレンダリングされる直前に発生する「CompositionTarget.Renderingイベント」に対するイベント・ハンドラとしてUpdateメソッドを指定します(※Updateメソッドの実装内容は後述)。インク・ストロークの外観を表す、DrawingAttributesオブジェクトのインスタンス「touchIndicator」のWidthプロパティとHeightプロパティにそれぞれ「10」を指定します。スタイラスの形状を指定するStylusTipプロパティに「StylusTip.Ellipse」を指定して円形とします。Motionの上で指をかざすと、かざした指の本数に応じて10px(px=ピクセル)の円が表示されるようになります(リスト3)。Motionで画像のトリミングと保存を行うためのサンプルプログラムを作る」と同じにつき割愛します、上記記事を参照してください。Motionのタッチ処理になります。タッチのイメージは次の図3のようなイメージです。Updateメソッドの処理(ホバー処理)手前側が「ホバー状態(hovering)」、奥側が「タッチ状態(touching)」を表します。空間の範囲は前後「1」〜「-1」となっています。SDKのAPIドキュメントから引用)(クリックで拡大)まずホバーの場合は、表示されている円がBlueの色になります。タッチ・ポイントの位置をメンバー変数「x」と「y」に格納します。画面に表示されている指の数をleap.Frame.Fingers.Countプロパティで取得して、メンバー変数「FingersCount」に格納しておきます。タッチ・ポイントがホバー状態(青色)になった時は、拡大画像は消滅します(リスト4)。IfNext次にタッチした処理です。タッチした場合は、表示されている円が赤に変わります。touchPoint.Y)と指定して、タッチ・ポイントとカーソルの位置を同じ位置に表示します。0)と指定して、マウスの左ボタンを押した処理と、マウスを動かした処理を行います。指が5本表示されてタッチされた場合は、zoomImage(拡大表示されている画像)を非表示にします。タッチ以外の処理ではタッチ・ポイントの色がGoldになり、何も発生しません。第5回のサンプルプログラムです。プログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。活動に本格的に参加、.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。