LayoutFarm.Text.TextSurfaceEventListener.NotifyPreviewKeydown C# (CSharp) Méthode

NotifyPreviewKeydown() static private méthode

static private NotifyPreviewKeydown ( TextSurfaceEventListener listener, char c ) : bool
listener TextSurfaceEventListener
c char
Résultat bool
        internal static bool NotifyPreviewKeydown(TextSurfaceEventListener listener, char c)
        {
            if (listener.IsRegisterPreviewKeyDownChar(c))
            {
                if (listener.PreviewRegisteredKeyDown != null)
                {
                    TextDomEventArgs e = new TextDomEventArgs(c);
                    listener.PreviewRegisteredKeyDown(listener, e);
                    return e.PreventDefault;
                }
            }
            return false;
        }
        internal static void NotifyArrowKeyCaretPosChanged(TextSurfaceEventListener listener, UIKeys key)

Usage Example

        public void OnKeyPress(UIKeyEventArgs e)
        {
            this.SetCaretState(true);
            //------------------------
            if (e.IsControlCharacter)
            {
                OnKeyDown(e);
                return;
            }

            char c = e.KeyChar;

            e.CancelBubbling = true;
            if (internalTextLayerController.SelectionRange != null &&
                internalTextLayerController.SelectionRange.IsValid)
            {
                InvalidateGraphicLocalArea(this, GetSelectionUpdateArea());
            }
            bool preventDefault = false;

            if (textSurfaceEventListener != null &&
                !(preventDefault = TextSurfaceEventListener.NotifyPreviewKeydown(textSurfaceEventListener, c)))
            {
                internalTextLayerController.UpdateSelectionRange();
            }
            if (preventDefault)
            {
                return;
            }
            if (internalTextLayerController.SelectionRange != null)
            {
                internalTextLayerController.AddCharToCurrentLine(c);
                if (textSurfaceEventListener != null)
                {
                    TextSurfaceEventListener.NotifyCharactersReplaced(textSurfaceEventListener, e.KeyChar);
                }
            }
            else
            {
                internalTextLayerController.AddCharToCurrentLine(c);
                if (textSurfaceEventListener != null)
                {
                    TextSurfaceEventListener.NotifyCharacterAdded(textSurfaceEventListener, e.KeyChar);
                }
            }

            EnsureCaretVisible();
            if (textSurfaceEventListener != null)
            {
                TextSurfaceEventListener.NotifyKeyDown(textSurfaceEventListener, e.KeyCode);
            }
        }