Beispiel #1
0
        protected override void OnKeyDown(KeyRoutedEventArgs e)
        {
            var ctrl  = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control);
            var alt   = Window.Current.CoreWindow.GetKeyState(VirtualKey.Menu);
            var shift = Window.Current.CoreWindow.GetKeyState(VirtualKey.Shift);

            if (ctrl.HasFlag(CoreVirtualKeyStates.Down) && !alt.HasFlag(CoreVirtualKeyStates.Down))
            {
                // Disable RichEditBox default shortcuts (Bold, Underline, Italic)
                // https://docs.microsoft.com/en-us/windows/desktop/controls/about-rich-edit-controls
                if (e.Key == VirtualKey.B || e.Key == VirtualKey.I || e.Key == VirtualKey.U ||
                    e.Key == VirtualKey.Number1 || e.Key == VirtualKey.Number2 ||
                    e.Key == VirtualKey.Number3 || e.Key == VirtualKey.Number4 ||
                    e.Key == VirtualKey.Number5 || e.Key == VirtualKey.Number6 || e.Key == VirtualKey.Number7 ||
                    e.Key == VirtualKey.Number8 || e.Key == VirtualKey.Number9 ||
                    e.Key == VirtualKey.L || e.Key == VirtualKey.R)
                {
                    return;
                }

                if (e.Key == VirtualKey.Tab)
                {
                    return; // ignoring tab key here since it is reserved for tab switch
                }

                if (e.Key == VirtualKey.W)
                {
                    if (!shift.HasFlag(CoreVirtualKeyStates.Down))
                    {
                        OnSetClosingKeyDown?.Invoke(this, e);
                    }
                    return;
                }

                if (e.Key == VirtualKey.F)
                {
                    if (shift.HasFlag(CoreVirtualKeyStates.Down))
                    {
                        OnFindAndReplaceButtonClicked?.Invoke(this, e);
                    }
                    else
                    {
                        OnFindButtonClicked?.Invoke(this, e);
                    }
                    return;
                }

                if (e.Key == VirtualKey.H)
                {
                    OnFindAndReplaceButtonClicked?.Invoke(this, e);
                    return;
                }

                if (e.Key == VirtualKey.Z)
                {
                    if (shift.HasFlag(CoreVirtualKeyStates.Down))
                    {
                        Document.Redo();
                    }
                    else
                    {
                        Document.Undo();
                    }
                    return;
                }

                if (e.Key == (VirtualKey)187 || e.Key == VirtualKey.Add) // +
                {
                    SetDefaultTabStop(FontFamily, FontSize + 2);
                    FontSize += 2;
                    return;
                }

                if (e.Key == (VirtualKey)189 || e.Key == VirtualKey.Subtract) // -
                {
                    if (FontSize > 4)
                    {
                        SetDefaultTabStop(FontFamily, FontSize - 2);
                        FontSize -= 2;
                    }
                    return;
                }

                if (e.Key == VirtualKey.Number0) // 0
                {
                    SetDefaultTabStop(FontFamily, EditorSettingsService.EditorFontSize);
                    FontSize = EditorSettingsService.EditorFontSize;
                    return;
                }
            }

            base.OnKeyDown(e);
        }
Beispiel #2
0
 private KeyboardCommandHandler GetKeyboardCommandHandler()
 {
     return(new KeyboardCommandHandler(new List <IKeyboardCommand <KeyRoutedEventArgs> >
     {
         new KeyboardShortcut <KeyRoutedEventArgs>(true, false, false, VirtualKey.W, (args) => OnSetClosingKeyDown?.Invoke(this, args)),
         new KeyboardShortcut <KeyRoutedEventArgs>(true, false, false, VirtualKey.Z, (args) => Document.Undo()),
         new KeyboardShortcut <KeyRoutedEventArgs>(true, false, true, VirtualKey.Z, (args) => Document.Redo()),
         new KeyboardShortcut <KeyRoutedEventArgs>(false, true, false, VirtualKey.Z, (args) => TextWrapping = TextWrapping == TextWrapping.Wrap ? TextWrapping.NoWrap : TextWrapping.Wrap),
         new KeyboardShortcut <KeyRoutedEventArgs>(true, false, false, VirtualKey.Add, (args) => IncreaseFontSize(2)),
         new KeyboardShortcut <KeyRoutedEventArgs>(true, false, false, (VirtualKey)187, (args) => IncreaseFontSize(2)), // (VirtualKey)187: =
         new KeyboardShortcut <KeyRoutedEventArgs>(true, false, false, VirtualKey.Subtract, (args) => DecreaseFontSize(2)),
         new KeyboardShortcut <KeyRoutedEventArgs>(true, false, false, (VirtualKey)189, (args) => DecreaseFontSize(2)), // (VirtualKey)189: -
         new KeyboardShortcut <KeyRoutedEventArgs>(true, false, false, VirtualKey.Number0, (args) => ResetFontSizeToDefault()),
         new KeyboardShortcut <KeyRoutedEventArgs>(true, false, false, VirtualKey.NumberPad0, (args) => ResetFontSizeToDefault()),
     }));
 }