/// <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);
            }
        }
Beispiel #2
0
        /// <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);
            }
        }