/// <summary> /// Called to update where we listen for grip. /// </summary> internal void ListenForGrip() { if (this.gripEventTarget != null) { KinectRegion.RemoveHandPointerGripHandler(this.gripEventTarget, this.OnHandPointerGrip); KinectRegion.SetIsGripTarget(this, false); BindingOperations.ClearBinding(this, IsPrimaryHandPointerOverProperty); this.gripEventTarget.IsEnabledChanged -= this.OnStateChangeEvent; this.gripEventTarget.MouseEnter -= this.OnMouseChange; this.gripEventTarget.MouseLeave -= this.OnMouseChange; this.gripEventTarget = null; } this.sliderParent = FindAncestor <KinectSlider>(this); if (this.sliderParent == null) { this.gripEventTarget = this; } else if (this.sliderParent.GripEventTarget != null) { this.gripEventTarget = this.sliderParent.GripEventTarget; } else { this.gripEventTarget = this.sliderParent; } var binding = new Binding { Source = this.gripEventTarget, Path = new PropertyPath(KinectRegion.IsPrimaryHandPointerOverProperty) }; BindingOperations.SetBinding(this, IsPrimaryHandPointerOverProperty, binding); this.gripEventTarget.IsEnabledChanged += this.OnStateChangeEvent; this.gripEventTarget.MouseEnter += this.OnMouseChange; this.gripEventTarget.MouseLeave += this.OnMouseChange; KinectRegion.AddHandPointerGripHandler(this.gripEventTarget, this.OnHandPointerGrip); KinectRegion.SetIsGripTarget(this.gripEventTarget, true); }