CircleActionメソッドの処理
CircleModel.vbのプログラム・コード
リスト7(ToraModel.vb)
・・・・コード略・・・・
Public Class ToraModel
Implements INotifyPropertyChanged
' メンバー変数の宣言
Private no As Integer = 0
Private ctlr As Controller
Private listener As LeapListener
' Newメソッド内で、AddHandlerステートメントに、listenerオブジェクトのLeapCircle
' イベントに、CircleActionベントハンドラ—を追加する。
Public Sub New()
・・・コード略・・・
AddHandler listener.LeapCircle, AddressOf CircleAction
End Sub
・・・・コード略・・・・
プロパティの宣言
ImageAngleとImageAngle2プロパティを定義します(リスト8)。
リスト8 (CircleModel.vb内のプロパティの宣言)
Private myImageAngle As Integer
Public Property ImageAngle As Integer
Get
Return myImageAngle
End Get
Set(value As Integer)
myImageAngle = value
OnPropertyChanged("ImageAngle")
End Set
End Property
Private myImageAngle2 As Integer
Public Property ImageAngle2 As Integer
Get
Return myImageAngle2
End Get
Set(value As Integer)
myImageAngle2 = value
OnPropertyChanged("ImageAngle2")
End Set
End Property
CircleActionメソッドの処理
具体的なコードはリスト9のようになります。
リスト9 モジュール変数Indexの値で条件分岐を行う(CircleActionメソッド)
Private Sub CircleAction(ByVal sd As CircleEnum)
Select Case sd
Case CircleEnum.Circle
Select Case Index
Case 1
ImageAngle = no
no += 10 ' モジュール変数Indexが1の場合はメンバー変noの値が10ずつ増加し、ImageAngleの値に指定する
Exit Select
Case 2
ImageAngle2 = no
no += 10 ' モジュール変数Indexが1の場合はメンバー変noの値が10ずつ増加し、ImageAngle2の値に指定する
Exit Select
Case Else
Exit Sub
End Select
End Select
End Sub
MainWindow.xaml内に[CircleModel]を取り込む。
まず名前空間として「xmlns:local="clr-namespace:RecognizeFingerTypeTouch"」を定義します。
次に
リスト10 「CircleModel」を取り込んだMainWindow.xaml
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc=http://schemas.openxmlformats.org/markup-compatibility/2006 mc:Ignorable="d"
xmlns:local="clr-namespace:RecognizeFingerTypeTouch"
Title="MainWindow" Height="500" Width="1000">
<Window.DataContext>
<local:CircleModel/>
</Window.DataContext>
<Canvas>
<Image x:Name="Image1" HorizontalAlignment="Left" Height="240" VerticalAlignment="Top" Width="320" Source="Images/林_01.png" Canvas.Left="140" Canvas.Top="111">
<Image.RenderTransform>
<RotateTransform Angle="{Binding ImageAngle}" CenterX="160" CenterY="120"/>
</Image.RenderTransform>
</Image>
<Image x:Name="Image2" HorizontalAlignment="Left" Height="240" VerticalAlignment="Top" Width="320" Source="Images/林_03.png" Canvas.Left="522" Canvas.Top="111">
<Image.RenderTransform>
<RotateTransform Angle="{Binding ImageAngle2}" CenterX="160" CenterY="120"/>
</Image.RenderTransform>
</Image>
<InkPresenter Name="paintCanvas"/>
</Canvas>
</Window>
※注意
今回紹介したサンプルコードを動かす際には、「LeapCSharp.NET4.0.dll」や「LeapCSharp.dll」、「Leap.dll」を読者自身のフォルダ内にあるDLLファイルに指定し直さなければ動かない可能性があるので、動かない場合は再指定してください。
- この記事のキーワード