一、 为什么我们要在WPF中使用CefSharp?
优点:
集成快,cef最简单的就是一个浏览器,使用最基础的静态界面+js+界面的Handler就可完成你想要的功能
开发快,web前端技术是门槛最低、库最多的界面技术了
利于开发各种复杂界面,对于美工的设计与个人的想法都能很好很简单的实现
引入了web众多优秀特性
缺点:
需要将cef打包进程序,50多M
熟练的使用需要些时间研究,而官网的文档很简陋,网上的教程很基础
对chromium的版本追得不是那么紧
初次加载与渲染慢
遗传了web的特点,没有高性能
注: 我使用的版本是cefsharp.wpf49
二、 使用中遇到的问题:
- 无法输入中文
解决:
Browser.PreviewTextInput += new TextCompositionEventHandler(OnPreviewTextInput);
/// <summary>
/// 修复中文的bug
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void OnPreviewTextInput(object sender, TextCompositionEventArgs e)
{
foreach (char t in e.Text)
{
if (IsChinese(t))
Browser.GetBrowser().GetHost().SendKeyEvent((int)CefSharp.Wpf.WM.CHAR, (int)t, 0);
}