2013-07-17 51 views
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 
     } 
    } 
} 

回答

0

第一個代碼塊應該可以正常工作。我的猜測是,HandPointerGripEvent連接好,它永遠不會觸發。

你是如何設置你的KinectRegion的? 你是否在每幀更新interration庫?

也許這有幫助嗎? Kinect SDK 1.7: Mapping Joint/Cursor Coordinates to screen Resolution

+0

我得到一個靜態只讀字段不能分配給第一個代碼塊,並且+ =運算符不能應用於System.Windows.RoutedEvent和metod組。我只是使用了像KinectRegion.AddHandPointerMoveHanlder()這樣的AddHandPointer ;現在我堅持如何爲鼠標創建觸發器語句。例如,當按下手時,我希望鼠標點擊它的當前點(就像有物理點擊一樣)。 – agorapax

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 >); 

而且S.O.

相關問題