private void PopupThumb_DragDelta(object sender, DragDeltaEventArgs e) { this.RootPopup.set_HorizontalOffset(this.RootPopup.get_HorizontalOffset() + e.get_HorizontalChange()); this.RootPopup.set_VerticalOffset(this.RootPopup.get_VerticalOffset() + e.get_VerticalChange()); Point point = this.BorderPathFigure.get_StartPoint(); point.set_X(point.get_X() - e.get_HorizontalChange()); point.set_Y(point.get_Y() - e.get_VerticalChange()); this.BorderPathFigure.set_StartPoint(point); }
private void thumb_DragDelta(object sender, DragDeltaEventArgs e) { if (base.get_Parent() is Canvas) { double a = (double) base.GetValue(Canvas.LeftProperty); double num2 = (double) base.GetValue(Canvas.TopProperty); a += e.get_HorizontalChange(); num2 += e.get_VerticalChange(); if (a < 0.0) { a = 0.0; } if (a > (base.get_Parent() as Canvas).get_ActualWidth()) { a = (base.get_Parent() as Canvas).get_ActualWidth() - base.get_ActualWidth(); } if (num2 < 0.0) { num2 = 0.0; } if (num2 > ((base.get_Parent() as Canvas).get_ActualHeight() - base.get_ActualHeight())) { a = (base.get_Parent() as Canvas).get_ActualHeight() - base.get_ActualHeight(); } base.SetValue(Canvas.LeftProperty, Math.Round(a)); base.SetValue(Canvas.TopProperty, Math.Round(num2)); } else { HorizontalAlignment alignment = (HorizontalAlignment) base.GetValue(FrameworkElement.HorizontalAlignmentProperty); VerticalAlignment alignment2 = (VerticalAlignment) base.GetValue(FrameworkElement.VerticalAlignmentProperty); double num3 = base.get_Margin().get_Left(); double num4 = base.get_Margin().get_Right(); double num5 = base.get_Margin().get_Top(); double num6 = base.get_Margin().get_Bottom(); switch (alignment) { case 0: num3 += e.get_HorizontalChange(); if (num3 < 0.0) { num3 = 0.0; } if (num3 > ((base.get_Parent() as Grid).get_ActualWidth() - base.get_ActualWidth())) { num3 = (base.get_Parent() as Grid).get_ActualWidth() - base.get_ActualWidth(); } break; case 2: num4 -= e.get_HorizontalChange(); if (num4 < 0.0) { num4 = 0.0; } if (num4 > ((base.get_Parent() as Grid).get_ActualWidth() - base.get_ActualWidth())) { num4 = (base.get_Parent() as Grid).get_ActualWidth() - base.get_ActualWidth(); } break; } switch (alignment2) { case 0: num5 += e.get_VerticalChange(); if (num5 < 0.0) { num5 = 0.0; } if (num5 > ((base.get_Parent() as Grid).get_ActualHeight() - base.get_ActualHeight())) { num5 = (base.get_Parent() as Grid).get_ActualHeight() - base.get_ActualHeight(); } break; case 2: num6 -= e.get_VerticalChange(); if (num6 < 0.0) { num6 = 0.0; } if (num6 > ((base.get_Parent() as Grid).get_ActualHeight() - base.get_ActualHeight())) { num6 = (base.get_Parent() as Grid).get_ActualHeight() - base.get_ActualHeight(); } break; } base.set_Margin(new Thickness(num3, num5, num4, num6)); } }