Пример #1
0
        void CreateContext()
        {
            ClearContext();             // clear old context if necessary
            if (!textArea.Options.EnableImeSupport)
            {
                return;
            }
            hwndSource = (HwndSource)PresentationSource.FromVisual(this.textArea);
            if (hwndSource != null)
            {
                //currentContext = ImeNativeWrapper.ImmCreateContext();
                //previousContext = ImeNativeWrapper.AssociateContext(hwndSource, currentContext);
                currentContext = ImeNativeWrapper.GetContext(hwndSource);
                hwndSource.AddHook(WndProc);
                // UpdateCompositionWindow() will be called by the caret becoming visible

                var threadMgr = ImeNativeWrapper.GetTextFrameworkThreadManager();
                if (threadMgr != null)
                {
                    // Even though the docu says passing null is invalid, this seems to help
                    // activating the IME on the default input context that is shared with WPF
                    threadMgr.SetFocus(IntPtr.Zero);
                }
            }
        }
Пример #2
0
        void CreateContext()
        {
            if (this.textArea == null)
            {
                return;
            }
            //Dirkster99 BugFix
            if (this.textArea.Options == null)
            {
                return;
            }

            if (!textArea.Options.EnableImeSupport)
            {
                return;
            }
            hwndSource = (HwndSource)PresentationSource.FromVisual(this.textArea);
            if (hwndSource != null)
            {
                currentContext  = ImeNativeWrapper.GetContext(hwndSource);
                previousContext = ImeNativeWrapper.AssociateContext(hwndSource, currentContext);
//				ImeNativeWrapper.SetCompositionFont(hwndSource, currentContext, textArea);
                hwndSource.AddHook(WndProc);
            }
        }