/// <summary> /// Attaches/Detaches the Key events for Shortcuts /// </summary> /// <param name="obj">TextToolbar</param> /// <param name="args">Property Changed Args</param> private static void OnEditorChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args) { if (InDesignMode) { return; } var bar = obj as TextToolbar; if (bar != null) { var oldEditor = args.OldValue as RichEditBox; var newEditor = args.NewValue as RichEditBox; if (oldEditor != null) { oldEditor.RemoveHandler(KeyDownEvent, bar.KeyEventHandler); } if (newEditor != null) { newEditor.AddHandler(KeyDownEvent, bar.KeyEventHandler, handledEventsToo: true); bar.CreateFormatter(); } var editorArgs = new EditorChangedArgs { Old = oldEditor, New = newEditor }; bar.EditorChanged?.Invoke(bar, editorArgs); } }
/// <summary> /// Attaches/Detaches the Key events for Shortcuts /// </summary> /// <param name="obj">TextToolbar</param> /// <param name="args">Property Changed Args</param> private static void OnEditorChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args) { if (InDesignMode) { return; } if (obj is TextToolbar bar) { var oldEditor = args.OldValue as RichEditBox; var newEditor = args.NewValue as RichEditBox; if (oldEditor != null) { #if !HAS_UNO oldEditor.RemoveHandler(KeyDownEvent, bar.KeyEventHandler); #endif } if (newEditor != null) { #if !HAS_UNO newEditor.AddHandler(KeyDownEvent, bar.KeyEventHandler, handledEventsToo: true); if (bar.Formatter != null) { bar.Formatter.SetModel(bar); bar.DefaultButtons = bar.Formatter.DefaultButtons; } else { bar.DefaultButtons = null; } #endif } var editorArgs = new EditorChangedArgs { Old = oldEditor, New = newEditor }; bar.EditorChanged?.Invoke(bar, editorArgs); } }