WPF+HTML5混合开发
做wpf和html混合开发也有一段时间了,从传统桌面开发WPF转到web前端,有相通之处,也有差别比较大的地方,xaml到html都是类似xml的结构,style和web的style类似,而业务逻辑,前者一般是C#实现,后者一般是js,加上之前的学习过,使用起来还算顺手,但总的感觉是WPF开放比html开发方便太多,可能是前者接触更久的缘故,毕竟微软的东西,有自己一套成熟的体系,封装的系统且友好,而html与js,有vue.js,react.js等热门前端框架,无论是扩展性,丰富性,社区活跃度都比WPF要好
说到混合开发,主的是CefSharp这个插件,提供一个Chrome浏览器的环境,这个插件,为C#的界面框架winform和wpf的都有支持,两个版本,具体插件安装和使用,网上有很多,就不赘述了,在这里,我主要说下我在使用过程种遇到的问题
1.环境要求
.net framework 4.5.2 以及 和 VC++ 2015 runtime (x86/x64) ,这两个环境,我是在用Inno Setup 打包的时候通过脚本判断安装的
C++的运行环境和CefSharp的版本有关,我用的是65的版本,最低要求VC++2015
2.C#和JS的交互
JS调用C#很简单,通过browser.RegisterJsObject(参数1, 参数2),参数2为C#种实例类的对象,参数1为C#中可以直接访问的对象,js中通过 参数1.方法,调用方法或属性,vue框架全局都可以访问。
但是C#调用JS,一种方式是把js中的方法和变量开放到打包好的index.html中,我在Vue中没有找到对应的方法,如果谁有方法,可以写在留言里。于是采用了一个笨方法,通过browser.EvaluateScriptAsync("Js代码")拿到标签中的值,或执行html标签上绑定的方法,如果没有对应标签,写一个隐藏的标签,可以通过这种方式,达到C#与js的互相调用
CefSharp 中文参考文档,看了不少文档,还是官方的最全面,遇到问题,先要从官方文档找,基本都有说明。
相关文章
- 【NEW】WPF MVVM 模式下自写自用的窗口样式
- WPF面板布局介绍Grid、StackPanel、DockPanel、WrapPanel
- WPF是什么_wpf documentviewer
- wpf滑动动画_旋转平移矩阵
- WPF实现新手提示功能
- 聊一聊 WPF 程序的键盘是如何被窃听的?
- WPF监听快捷键的几种方式
- 【愚公系列】2023年04月 WPF运动控制平台-003.运动控制平台的UI设计
- WPF与MSSQL携手,让你实现数据服务管理梦想!(wpf mssql)
- WPF连接MySQL:实现跨平台的数据交互(wpf 连接mysql)
- WPF驱动下的MySQL持续优化与发展(c wpf mysql)
- 在WinForm和WPF中使用GMap.Net地图插件简单教程