コード例 #1
0
ファイル: ButtonBase.cs プロジェクト: redbadger/XPF
        protected override void OnNextGesture(Gesture gesture)
        {
            if (!this.IsEnabled)
            {
                return;
            }

            switch (gesture.Type)
            {
                case GestureType.LeftButtonDown:
                    this.isLeftButtonDown = true;

                    if (this.CaptureMouse())
                    {
                        this.IsPressed = true;
                    }

                    break;
                case GestureType.LeftButtonUp:
                    this.isLeftButtonDown = false;

                    if (this.IsPressed)
                    {
                        this.OnClick();
                    }

                    this.ReleaseMouseCapture();
                    this.IsPressed = false;
                    break;
                case GestureType.Move:
                    if (this.isLeftButtonDown && this.IsMouseCaptured)
                    {
                        this.IsPressed = this.HitTest(gesture.Point);
                    }

                    break;
            }
        }
コード例 #2
0
ファイル: ScrollViewer.cs プロジェクト: redbadger/XPF
        protected override void OnNextGesture(Gesture gesture)
        {
            switch (gesture.Type)
            {
                case GestureType.LeftButtonDown:
                    this.CaptureMouse();
                    break;
                case GestureType.FreeDrag:
                    if (this.scrollInfo != null && this.IsMouseCaptured)
                    {
                        this.scrollInfo.SetHorizontalOffset(this.scrollInfo.Offset.X - gesture.Delta.X);
                        this.scrollInfo.SetVerticalOffset(this.scrollInfo.Offset.Y - gesture.Delta.Y);
                    }

                    break;
                case GestureType.LeftButtonUp:
                    if (this.IsMouseCaptured)
                    {
                        this.ReleaseMouseCapture();
                    }

                    break;
            }
        }
コード例 #3
0
ファイル: UIElement.cs プロジェクト: redbadger/XPF
 protected virtual void OnNextGesture(Gesture gesture)
 {
 }
コード例 #4
0
ファイル: RootElement.cs プロジェクト: redbadger/XPF
        private static bool OnNextGestureFindElement(IElement element, Gesture gesture)
        {
            if (element is IInputElement && element.HitTest(gesture.Point))
            {
                element.Gestures.OnNext(gesture);
                return true;
            }

            return false;
        }
コード例 #5
0
ファイル: RootElement.cs プロジェクト: redbadger/XPF
 private static bool OnNextGestureFindChild(IElement element, Gesture gesture)
 {
     return
         element.GetVisualChildren().Reverse().Where(child => !OnNextGestureFindChild(child, gesture)).Any(
             child => OnNextGestureFindElement(child, gesture));
 }
コード例 #6
0
ファイル: RootElement.cs プロジェクト: redbadger/XPF
 protected override void OnNextGesture(Gesture gesture)
 {
     if (this.elementWithMouseCapture != null)
     {
         this.elementWithMouseCapture.Gestures.OnNext(gesture);
     }
     else
     {
         if (!OnNextGestureFindChild(this, gesture))
         {
             OnNextGestureFindElement(this, gesture);
         }
     }
 }