Net Core教程

C# CefSharp.WPF 中文输入问题解决方案

本文主要是介绍C# CefSharp.WPF 中文输入问题解决方案,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

引言

由于某个需求,需要在原有的 WPF 程序上内嵌浏览器,最终选定 CefSharp.WPF , 但是还是有不少的问题影响着使用体验,比如:最开始遇到的不能输入中文、能输入中文了输入法候选框或右键菜单却跑到屏幕左上角,使用搜狗等第三方输入法不能输入等等。

Google 上逛了很久,也试了很多方法,最后发现一个最简单好用的方案是借用 WinForm 控件。

正文

新建一个 .Net 4.5.2 以上的 WinForm 程序,修改输出类型为“类库”,然后通过 NuGet 下载最新的 CefSharp.WinForms , 新建一个用户控件 CefControl, 添加命名空间:

using CefSharp;
using CefSharp.WinForms;

添加如下代码:

public partial class CefControl : UserControl
{
    ChromiumWebBrowser Default;

    public CefControl(string url)
    {
        InitializeComponent();

        if (!Cef.IsInitialized)
            Cef.Initialize();
        Default = new ChromiumWebBrowser(url);
        // Add it to the form and fill it to the form window.
        this.Controls.Add(Default);
        Default.Dock = DockStyle.Fill;
    }

    public static void Shutdown()
    {
        if (Cef.IsInitialized)
            Cef.Shutdown();
    }
}

在 WPF 项目中使用:

        <WindowsFormsHost>
            <wflib:CefControl/>
        </WindowsFormsHost>

或:

        WindowsFormsHost browser = new WindowsFormsHost();
        browser.Child = new CefControl(url);
        
这篇关于C# CefSharp.WPF 中文输入问题解决方案的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!