发帖前的感受
距离NanUI上次更新到NanUI0.7已经过去半年多了,B站和头条的教学视频才制作到第二集。
有同学小声问我是不是出了什么车祸。 我把库删了就跑了,所以这么久都没有更新项目,也没有发布教程。 其实,这只是一个玩笑。
实际情况是NanUI0.7是基于ChormiumFX项目开发的。 刚刚发布0.7后,我发现框架本身有一个重大bug,而且是我无法处理的。
我想联系作者深入分析这个BUG。 谁知道ChromiumFX项目虽然突然终止,但至今该项目的主页仍然被劫持。
为此,我不得不考虑放弃ChromiumFX,改用内核。 选择CefSharp和CefGlue后css3 磨砂效果,我仍然认为使用更接近原始CEF的CefGlue作为底层,重置NanUI项目并将版本号提高到0.8。 这是第一次在大项目版本直接升级,几乎没有小版本更新。
新版本的NanUI已经开发了半年多了,踩过CefGlue的各种坑。 在此期间,我的妻子也患上了极其不幸的疾病。 后来,我很幸运地经历了人生中第一次入院经历。 幸好老天爷把我们狗的命留下了,以后恐怕又会另作他用了,所以我也希望你和你的家人都身体健康。 经历了这场浩劫之后,我突然觉得只要人能够好好的活着,身体健康就可以了,其他的都不重要了。
废话已经够多了,下面我们离题吧。
NanUI简介
NanUI界面组件是一个开源的.NET/.NETCore表单应用程序(WinForms)界面组件。 她适合想要使用 HTML5/CSS3 等后端技术来改进 Windows 窗体应用程序的用户界面的 .NET/.NETCore 开发人员。
NanUI的渲染引擎WinFormium基于微软的嵌入式浏览器框架Chromium EmbeddedFramework,因此用户可以使用各种后端技术HTML5/CSS3/JavaScript和框架React/Vue/Angular/Blazor来设计和开发.NET桌面应用程序的用户界面。
同时,WinFormium独特的JavaScriptBridge可以轻松简单地实现浏览器与.NET之间的通信和数据交换。
使用NanUI界面框架将为传统WinForm应用程序的用户界面设计和开发带来无限可能!
如果您想了解更多有关NanUI项目的信息,请访问NanUI项目主页。
0.8新内容内核替换
内核从ChromiumFX替换为CefGlue,Chromim版本提升至80.0.3987.163。
托管形式
重绘托管表单底层,删除了不必要的API,只保留与框架相关的功能,但扩展了无框架表单的能力css3 磨砂效果,增加了两种阴影效果和一种边框效果。
表格类型
原创风格
系统原生窗体风格与传统WinForm应用程序界面一致,系统风格的标题栏、框架和系统命令区,类似于传统Form上推送WebBrowser控件时的外观控件并将 Dock 属性设置为 Fill。
无边界形式
无边框表单样式中,系统原生的标题栏和边框被隐藏,整个表单区域都可以用来勾勒出你的应用界面。
信息亭模式
Kiosk式表单广泛应用于需要全屏显示表单内容的场景,例如:工控上位机界面、查询机界面、数据大屏等。
异型窗
使用分层样式可以创建奇怪形状的半透明窗口。 类似于各种大师、管家提供的加速球的疗效。
亚克力特效形式
亚克力效果是Windows 10创意者更新后提供的新功能,可以让窗体的透明或半透明区域进行模糊处理,并与桌面元素融合,实现特殊的磨砂亚克力效果。 与分层风格相同,根据网页上透明或半透明区域的设置,实现特定效果的磨砂玻璃效果。
窗口效果
阴影效果
关
泛光灯
阴影
投影
边界效应
无框
正常帧
圆形边框
以上所有示例均已提交至GitHub代码仓库,请异步获取各示例源码。
离屏渲染支持
引入Direct2D技术,实现了CEF的离屏渲染,从而增加了两种新的承载形式:异形形式和亚克力特效形式。
资源处理程序
添加了资源处理程序以从 ZIP 文件加载资源。
其他 使用NanUI0.8创建引用NanUI包的应用程序
使用VisualStudio的NuGet包管理器或包管理器控制台获取NanUI程序集,并根据项目类型(.NETFramework或.NETCore)手动安装相应的程序集。
Install-Package NetDimension.NanU
安装NanUI运行环境包。 该包主要包含CEF框架相关的文件。 根据你的项目架构(AnyCPU/x86/x64)的具体情况,这个NuGet包在编译时会将架构对应的运行时文件复制到项目的输出目录中。
PM> Install-Package NetDimension.NanUI.Runtime
如果您在国外NuGet访问速度慢,难以下载NetDimension.NanUI.Runtime包,请加入QQ群521854872,在群文件中下载NuGet离线包。
编码部分
在加载主窗体之前初始化NanUI运行环境。
using NetDimension.NanUI;
class Program
{
static void Main()
{
// ...
WinFormium.CreateRuntimeBuilder(env => {
env.CustomCefSettings(settings =>
{
// 在此处设置 CEF 的相关参数
});
env.CustomCefCommandLineArguments(commandLine =>
{
// 在此处指定 CEF 命令行参数
});
}, app =>
{
// 指定启动窗体
app.UseMainWindow(context => new MainWindow());
})
.Build()
.Run();
}
}
编译表单代码
using NetDimension.NanUI;
using NetDimension.NanUI.HostWindow;
class MainWindow : Formium
{
// 设置窗体样式类型
public override HostWindowType WindowType => HostWindowType.System;
// 指定启动 Url
public override string StartUrl => "https://www.formium.net";
public MainWindow()
{
// 在此处设置窗口样式
Size = new System.Drawing.Size(1024, 768);
}
protected override void OnReady()
{
// 在此处进行浏览器相关操作
//ShowDevTools();
//ExecuteJavaScript("alert('Hello NanUI')");
}
}
没有复杂的步骤! 只需操作NanUI项目即可流畅运行。
项目相关仓库