HTML5技术

NanUI for Winform发布,让Winform界面设计拥有无限可能 - 林选臣(2)

字号+ 作者:H5之家 来源:博客园 2016-05-19 18:01 我要评论( )

fx与程序集放置在同一层级,如果项目编译时特意选择了x86架构或x64架构时,另外一种架构的文件夹是不需要存在的,仅当项目编译类型为any cpu时需要x86和x64文件同时存在,NanUI会根据客户机的运行环境来自动选择加

fx与程序集放置在同一层级,如果项目编译时特意选择了x86架构或x64架构时,另外一种架构的文件夹是不需要存在的,仅当项目编译类型为any cpu时需要x86和x64文件同时存在,NanUI会根据客户机的运行环境来自动选择加载x86或是x64架构的CEF库。当fx存在的时候NanUI将不会启用CEF库下载的特性,仅当fx文件夹内的CEF框架不存在时,NanUI才会自动从远程服务器下载CEF框架文件。

接下来,在Main函数中做一些简单的初始化的工作。

[STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); UIStartupManager.UseSharedFramework = true; if(UIStartupManager.InitializeChromium(args=> { args.Settings.LogSeverity = Chromium.CfxLogSeverity.Default; //这里可以对CEF进行一些设定 },args=> { Console.WriteLine(args.CommandLine); //输出命令行开关,看看启用或是禁用了哪些功能 })) { //初始化成功,加载程序集内嵌的资源到运行时中,当然也可以加载其他程序集里面的资源。 UIStartupManager.RegisterEmbeddedScheme(System.Reflection.Assembly.GetExecutingAssembly()); //启动主窗体 Application.Run(new frmWelcome()); } }

主窗体

frmWelcome : HtmlUIForm //继承HtmlUIForm { frmAbout aboutForm = null; public frmWelcome() : ) //设定启示页面,scheme是embedded就是我们在Main里注册的当前程序集资源 { InitializeComponent(); //在js中注册一个方法来打开About窗口 UI.GlobalObject.AddFunction().Execute += (sender, args) => { ShowAboutWindow(); }; //网页加载完成时触发事件 UI.LoadHandler.OnLoadEnd += (sender, args) => { (args.Frame.IsMain) { js = $; UI.ExecuteJavascript(js); } }; } private void ShowAboutWindow() { .UpdateUI(() => { (aboutForm == null || aboutForm.IsDisposed) { aboutForm = new frmAbout(); aboutForm.Show(this); } else { aboutForm.Activate(); } }); } }

 

就是这么简单几步,漂亮的HTML界面加载到了你的Winform上,当然,前提是你得先有个“漂亮”的HTML界面先:)

好了,就像上面的图片里展示的一样,通过NanUI,Winform同样能够做出像其他两款软件那样的界面了。NanUI的预览版就先介绍到这里。在后续的文章中,我将以项目的形式再来深度的介绍NanUI在Winform中的各种运用。

下面的会提供上述图片中展示的DEMO程序及源代码提供给有兴趣的朋友下载把玩。

DEMO是用VS2015在Win10下编写的,.net需要4.5版本(Win10免安装,其他系统自行Google下载安装)能够运行。

感谢观看,谢谢大家,欢迎拍砖。

 

附件:

Release.rar

编译后的DEMO程序,不带CEF框架,第一次启动程序自动下载CEF相关文档。CEF将保存到%appdata%\Net Dimension Studio\NanUI\

Source.rar

Demo程序的源代码,有兴趣的朋友可下载把玩。

 

-------------------------------------------------- 分隔线 ----------------------------------------------------

应园友的要求,把NanUI所用技术的开源连接放置在此:

ChromiumFX - https://bitbucket.org/chromiumfx/chromiumfx

DotNetZip - https://github.com/haf/DotNetZip.Semverd .net 4.5的System.IO.Compress下面有操作Zip的类,正考虑要不要换成.net自带的,换了以后整个项目就只支持4.5了。

另外一个CEF的.net实现

CefSharp - https://github.com/cefsharp/CefSharp/ NanUI最初的版本使用CefSharp作为基础,但是有些问题始终解决不了,才又转到ChromiumFX的。

 

另外今天看了评论,感谢各位提供了其他UI框架,很多之前都没见过,所以真是学习长进了。

也有朋友提出很多界面效果用WPF就可以实现,那问题来了,我不会WPF呀,呵呵,因为做过几年网页狗,所以还是对HTML5、CSS3和Javascript要更亲切点。对于WPF和XAML,确实很强大,但路有多条,本着钻研的精神,应怀开放的态度,任何事物都能拿来尝试和学习。

NanUI也是机缘巧合之下研究了CEF才有想法做这么一个项目的。当时在跟某银行用了EXTJS做系统,为了客户端浏览器能正确加载EXTJS,解决方案就是Winform+CEF加壳硬把一个BS改成了客户端,所以后来了解了CefSharp项目,因为能力和学识有限,用CefSharp作为UI基础的时候有几个问题始终解决不了,因此才又发掘了ChromiumFX。

还有朋友提出NanUI有卵用?个人觉得,存在即合理。既然腾讯,网易能用CEF弄出微信Windows客户端,网易云音乐,既然Cef永远甩不掉体积大的问题,我相信出于种种考虑,这两家大公司最终在其面向终端用户的应用软件中赤裸裸的、不计软件体积的引用了Cef,那我们这些.net狗winform狗为何不能拿CEF来做成Winform的界面壳呢?

个人拙见,欢迎讨论回复讨论或进群讨论,群号:241088256

-------------------------------------------------- 分隔线 ----------------------------------------------------

 

NanUI for Winform使用示例系列

NanUI for Winform 使用示例【第一集】——山寨个代码编辑器

待续。。。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 开启新模式WinForm - Jokerpapapa

    开启新模式WinForm - Jokerpapapa

    2017-04-25 10:00

  • Omi新成员omi-router正式发布 - 【当耐特】

    Omi新成员omi-router正式发布 - 【当耐特】

    2017-04-02 12:01

  • Omi v1.0.2发布 - 正式支持传递javascript表达式 - 【当耐特】

    Omi v1.0.2发布 - 正式支持传递javascript表达式 - 【当耐特】

    2017-03-22 11:03

  • Omi v1.0震撼发布 - 令人窒息的Web组件化框架 - 【当耐特】

    Omi v1.0震撼发布 - 令人窒息的Web组件化框架 - 【当耐特】

    2017-03-21 08:02

网友点评
$