タイルボタンでのホバリング (onmouseover など) を検出しようとしていますが、ビルドインハンド ポインターである必要があります。ビルド イン イベントが見つからず、これを試しましたが、例外が発生しました (指定されたバインディング制約に一致する型 'Microsoft.Kinect.Toolkit.Controls.KinectUserViewer' でのコンストラクターの呼び出しにより、例外がスローされました'
例外を与える XAML:
<k:KinectUserViewer k:KinectRegion.KinectRegion="{Binding ElementName=kinectRegion}" HorizontalAlignment="Center" Height="150" VerticalAlignment="Top" Width="150" Canvas.Left="820"/>
<k:KinectRegion KinectSensor="{Binding Kinect, ElementName=kinectSensorChooser1}" Height="919" Width="1920" x:Name="kinectRegion" Canvas.Top="151">
ボタンは forloop によって自動的に作成されます。
CS:
public static readonly RoutedEvent HandPointerEnterEvent = EventManager.RegisterRoutedEvent(
"HandPointerEnter", RoutingStrategy.Direct, typeof(EventHandler<HandPointerEventArgs>), typeof(KinectRegion));
public static readonly RoutedEvent HandPointerLeaveEvent = EventManager.RegisterRoutedEvent(
"HandPointerLeave", RoutingStrategy.Direct, typeof(EventHandler<HandPointerEventArgs>), typeof(KinectRegion));
...
public MainWindow()
{
InitializeComponent();
KinectRegion.AddHandPointerEnterHandler(this, this.OnHandPointerEnter);
KinectRegion.AddHandPointerLeaveHandler(this, this.OnHandPointerLeave);
....
private void OnHandPointerEnter(object sender, HandPointerEventArgs handPointerEventArgs)
{
this.Close();//Trying to see if it works
}
private void OnHandPointerLeave(object sender, HandPointerEventArgs handPointerEventArgs)
{
this.Close();//Trying to see if it works
}
私が試したことは、このリンクから来ています: Kinect SDK 1.7 でのボタン イベントの引き渡し
ただし、最初の 2 行 (public static) を削除すると、プログラムは動作しますが、ホバーは検出されません。これらの行では、例外がスローされます。
基本的に私が最初に試みているのは、ホバーを検出してからプログラムを閉じることです (それが機能するかどうかは良い考えです)。
助けてくれてありがとう