private void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs args) { args.Handled = true; Point position = args.GetPosition(this); ActivePart = GetActivePart(position.X); _startX = position.X; switch (ActivePart) { case ActivePartType.Left: case ActivePartType.Right: Cursor = Cursors.SizeWE; CaptureMouse(); break; case ActivePartType.Middle: Cursor = Cursors.Hand; CaptureMouse(); break; case ActivePartType.Outside: Cursor = Cursors.Arrow; break; } }
/// <summary> /// Ctor /// </summary> public ChartScrollerEx() { ActivePart = ActivePartType.Outside; Height = 50; MouseMove += OnMouseMove; MouseLeftButtonUp += OnMouseLeftButtonUp; MouseLeftButtonDown += OnMouseLeftButtonDown; LostMouseCapture += OnLostMouseCapture; SizeChanged += OnSizeChanged; }
private void OnMouseLeftButtonUp(object sender, MouseButtonEventArgs args) { args.Handled = true; Point position = args.GetPosition(this); if (ActivePart != ActivePartType.Outside) { UpdateIndexes(position); ActivePart = ActivePartType.Outside; ReleaseMouseCapture(); } }
private void OnLostMouseCapture(object sender, MouseEventArgs mouseEventArgs) { ActivePart = ActivePartType.Outside; }