0

イベントが発生するたびに呼び出される関数を取得しようとしています。KinectRegion クラスには、HandPointerGrip というイベントがあります: http://msdn.microsoft.com/en-us/library/microsoft.kinect.toolkit.controls.kinectregion.handpointergrip.aspx

イベントが宣言されていることがわかりますが、イベントはすでに呼び出されるように設定されているようです(HandPointerEventArgs)? このイベントに関数を追加するにはどうすればよいですか?

public Menu()
{
    KinectRegion.HandPointerGripEvent+=Hand_Gripped; // why doesn't this work? :(
}    

private void Hand_Gripped(object sender, HandPointerEvnetArgs e)
{
    MessageBox.Show("I work!"); // I wish this would work
}

この問題に懸命に取り組んできましたが、これはうまくいくと思います。それをテストすることを恐れています。ルーティング イベント、デリゲート、およびイベントについて多くを学びます。

namespace ...
{
    public delegate void HandPointerEventHandler(object sender, HandPointerEventArgs e);
    public partial class thePage : Page
    {
        public event HandPointerEventHandler HandGripped
        {
            add {this.AddHandler(KinectRegion.HandPointerGripEvent,value);}
            remove {this.RemoveHandler(KinectRegion.HandPointerGripEvent,vlaue);}
        }

        public thePage()
        {
            InitializeComponent();
            this.HandGripped += new HandPointerEventHandler(OnHandGripped);
        }

        protected virtual void OnHandGripped(object sender, HandPointerEventArgs e)
        {
            MessageBox.Show("hello"); //hopefully
        }
    }
}
4

2 に答える 2

0

コードの最初のブロックは正常に動作するはずです。私の推測では、HandPointerGripEvent は正常に接続されており、起動することはありません。

KinectRegion をどのように設定していますか? フレームごとに Interration ライブラリを更新していますか?

おそらくこれが役立ちますか? Kinect SDK 1.7: ジョイント/カーソル座標を画面解像度にマッピングする

于 2013-07-19T10:02:36.697 に答える
0
KinectRegion.AddHandPointerGripHandler(this.Button1, this.Button1_Click);

ここButton1にあります:

< k:KinectTileButton x:Name="Button1" Height="150" Width="150" Content="Click"/ >

名前空間:

  • xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  • xmlns:k="http://schemas.microsoft.com/kinect/2013"

Button1_Clickメソッド自体です。たとえば、次のようになります。

private void Button1_Click(object sender, RoutedEventArgs e)
{
    MessageBox.Show("YOU GOT ME !!!");
}

別のインターフェイス オブジェクトのグリップ ハンドラーを追加する場合は、次のようにします。

KinectRegion.AddHandPointerGripHandler(< object name >, < method name >);

など

于 2014-03-27T15:11:28.687 に答える