内容简介:cefsharp wpf 中文输入问题解决方法
摘要
最近在搞一个客户端的项目,考虑使用wpf,内嵌webView的方式,访问h5页面。所以使用了CefSharp组件,但发现一个问题,就是在输入中文的时候,无法输入。
解决办法
去官方github的搜索了下,之前有人遇到过,并且解决了,
下载下来之后,重写OnPreviewTextInput方法,然后编译。
//CefSharp.Wpf.ChromiumWebBrowser 增加 protected override void OnPreviewTextInput(TextCompositionEventArgs e) { foreach (char t in e.Text) { managedCefBrowserAdapter.SendKeyEvent((int)WM.CHAR, (int)t, 0); // or WM.IME_CHAR? } base.OnPreviewTextInput(e); } //SourceHook方法注释掉case WM.CHAR:
或者监听PreviewTextInput事件,对输入内容进行处理。
var setting = new CefSharp.CefSettings(); CefSharp.Cef.Initialize(setting); ChromiumWebBrowser webView = new CefSharp.Wpf.ChromiumWebBrowser(); webView.PreviewTextInput += (obj, args) => { foreach (var character in args.Text) { // 把每个字符向浏览器组件发送一遍 webView.GetBrowser().GetHost().SendKeyEvent((int)WM.CHAR, (int)character, 0); } // 不让cef自己处理 e.Handled = true; };
如图
但上面的问题解决了,仍有一个输入法候选词定位的问题,无法定位到输入框下面,这个问题也没找到解决办法,如图所示:
下面是winform使用cefsharp的情况
参考资料
http://www.cnblogs.com/wuya/p/cefsharp-wpf-chinese-input-mehond.html
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 解决MySQL 8.0 输入无误仍然提示Access denied问题
- Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用)
- Android输入系统(一)输入事件传递流程和InputManagerService的诞生
- Android输入系统(四)输入事件是如何分发到目标窗口的?
- Android输入系统(二)IMS的启动过程和输入事件的处理
- GO随笔-表单输入
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Responsive Web Design
Ethan Marcotte / Happy Cog / 2011-6 / USD 18.00
From mobile browsers to netbooks and tablets, users are visiting your sites from an increasing array of devices and browsers. Are your designs ready? Learn how to think beyond the desktop and craft be......一起来看看 《Responsive Web Design》 这本书的介绍吧!