Exemple #1
0
        /// <summary>
        /// This is the method that responds to the MouseEvent event.
        /// </summary>
        /// <param name="e"></param>
        protected override void OnMouseMove(MouseEventArgs e)
        {
            base.OnMouseMove(e);

            if (IsDragging)
            {
                if (e.MouseDevice.LeftButton == MouseButtonState.Pressed)
                {
                    Point thumbCoordPosition = e.GetPosition(this);
                    // Get client point then convert to screen point
                    Point screenCoordPosition = SafeSecurityHelper.ClientToScreen(this, thumbCoordPosition);

                    // We will fire DragDelta event only when the mouse is really moved
                    if (screenCoordPosition != _previousScreenCoordPosition)
                    {
                        _previousScreenCoordPosition = screenCoordPosition;
                        e.Handled = true;
                        RaiseEvent(new DragDeltaEventArgs(thumbCoordPosition.X - _originThumbPoint.X,
                                                          thumbCoordPosition.Y - _originThumbPoint.Y));
                    }
                }
                else
                {
                    if (e.MouseDevice.Captured == this)
                    {
                        ReleaseMouseCapture();
                    }
                    ClearValue(IsDraggingPropertyKey);
                    _originThumbPoint.X = 0;
                    _originThumbPoint.Y = 0;
                }
            }
        }
 /// <summary>Provides class handling for the <see cref="E:System.Windows.UIElement.MouseMove" /> event. </summary>
 /// <param name="e">The event data.</param>
 // Token: 0x060060C2 RID: 24770 RVA: 0x001B1D40 File Offset: 0x001AFF40
 protected override void OnMouseMove(MouseEventArgs e)
 {
     base.OnMouseMove(e);
     if (this.IsDragging)
     {
         if (e.MouseDevice.LeftButton == MouseButtonState.Pressed)
         {
             Point position = e.GetPosition(this);
             Point point    = SafeSecurityHelper.ClientToScreen(this, position);
             if (point != this._previousScreenCoordPosition)
             {
                 this._previousScreenCoordPosition = point;
                 e.Handled = true;
                 base.RaiseEvent(new DragDeltaEventArgs(position.X - this._originThumbPoint.X, position.Y - this._originThumbPoint.Y));
                 return;
             }
         }
         else
         {
             if (e.MouseDevice.Captured == this)
             {
                 base.ReleaseMouseCapture();
             }
             base.ClearValue(Thumb.IsDraggingPropertyKey);
             this._originThumbPoint.X = 0.0;
             this._originThumbPoint.Y = 0.0;
         }
     }
 }
Exemple #3
0
 /// <summary>
 /// This is the method that responds to the MouseButtonEvent event.
 /// </summary>
 /// <param name="e"></param>
 protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
 {
     if (!IsDragging)
     {
         e.Handled = true;
         Focus();
         CaptureMouse();
         SetValue(IsDraggingPropertyKey, true);
         _originThumbPoint            = e.GetPosition(this);
         _previousScreenCoordPosition = _originScreenCoordPosition = SafeSecurityHelper.ClientToScreen(this, _originThumbPoint);
         bool exceptionThrown = true;
         try
         {
             RaiseEvent(new DragStartedEventArgs(_originThumbPoint.X, _originThumbPoint.Y));
             exceptionThrown = false;
         }
         finally
         {
             if (exceptionThrown)
             {
                 CancelDrag();
             }
         }
     }
     else
     {
         // This is weird, Thumb shouldn't get MouseLeftButtonDown event while dragging.
         // This may be the case that something ate MouseLeftButtonUp event, so Thumb never had a chance to
         // reset IsDragging property
         Debug.Assert(false, "Got MouseLeftButtonDown event while dragging!");
     }
     base.OnMouseLeftButtonDown(e);
 }
Exemple #4
0
 /// <summary>
 /// This is the method that responds to the MouseButtonEvent event.
 /// </summary>
 /// <param name="e"></param>
 protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
 {
     if (IsMouseCaptured && IsDragging)
     {
         e.Handled = true;
         ClearValue(IsDraggingPropertyKey);
         ReleaseMouseCapture();
         Point pt = SafeSecurityHelper.ClientToScreen(this, e.MouseDevice.GetPosition(this));
         RaiseEvent(new DragCompletedEventArgs(pt.X - _originScreenCoordPosition.X, pt.Y - _originScreenCoordPosition.Y, false));
     }
     base.OnMouseLeftButtonUp(e);
 }
 /// <summary>Provides class handling for the <see cref="E:System.Windows.ContentElement.MouseLeftButtonDown" /> event. </summary>
 /// <param name="e">The event data.</param>
 // Token: 0x060060BF RID: 24767 RVA: 0x001B1BF0 File Offset: 0x001AFDF0
 protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
 {
     if (!this.IsDragging)
     {
         e.Handled = true;
         base.Focus();
         base.CaptureMouse();
         base.SetValue(Thumb.IsDraggingPropertyKey, true);
         this._originThumbPoint            = e.GetPosition(this);
         this._previousScreenCoordPosition = (this._originScreenCoordPosition = SafeSecurityHelper.ClientToScreen(this, this._originThumbPoint));
         bool flag = true;
         try
         {
             base.RaiseEvent(new DragStartedEventArgs(this._originThumbPoint.X, this._originThumbPoint.Y));
             flag = false;
         }
         finally
         {
             if (flag)
             {
                 this.CancelDrag();
             }
         }
     }
     base.OnMouseLeftButtonDown(e);
 }