Esempio n. 1
0
        /// <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);
        }