using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Controls; using System.Windows.Input; namespace Tango.Editors { internal class CustomScrollViewer : ScrollViewer { public event EventHandler MouseZooming; protected override void OnMouseWheel(MouseWheelEventArgs e) { if (Keyboard.IsKeyDown(Key.LeftCtrl)) { e.Handled = true; OnMouseZooming(e); } else { base.OnMouseWheel(e); } } protected override void OnKeyDown(KeyEventArgs e) { if (e.KeyboardDevice.Modifiers == ModifierKeys.Control) { if (e.Key == Key.Left || e.Key == Key.Right) e.Handled = true; return; } base.OnKeyDown(e); } protected override void OnPreviewKeyDown(KeyEventArgs e) { if (e.Key == Key.Up || e.Key == Key.Down || e.Key == Key.Right || e.Key == Key.Left) { e.Handled = true; } } protected virtual void OnMouseZooming(MouseWheelEventArgs e) { if (MouseZooming != null) MouseZooming(this, e); } } }