RangeThumb.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. using System.Windows;
  3. using System.Windows.Controls.Primitives;
  4. using System.Windows.Input;
  5. namespace HandyControl.Controls;
  6. public class RangeThumb : Thumb
  7. {
  8. public static readonly DependencyProperty ContentProperty = DependencyProperty.Register(
  9. nameof(Content), typeof(object), typeof(RangeThumb), new PropertyMetadata(default(object)));
  10. public object Content
  11. {
  12. get => GetValue(ContentProperty);
  13. set => SetValue(ContentProperty, value);
  14. }
  15. protected override void OnMouseMove(MouseEventArgs e)
  16. {
  17. }
  18. public void StartDrag()
  19. {
  20. IsDragging = true;
  21. Focus();
  22. CaptureMouse();
  23. RaiseEvent(new MouseButtonEventArgs(Mouse.PrimaryDevice, Environment.TickCount, MouseButton.Left)
  24. {
  25. RoutedEvent = PreviewMouseLeftButtonDownEvent,
  26. Source = this
  27. });
  28. }
  29. public new void CancelDrag()
  30. {
  31. base.CancelDrag();
  32. RaiseEvent(new MouseButtonEventArgs(Mouse.PrimaryDevice, Environment.TickCount, MouseButton.Left)
  33. {
  34. RoutedEvent = PreviewMouseLeftButtonUpEvent
  35. });
  36. }
  37. }