From 7a87ad5b840ff120ba6062f2ca8b8566974f9db4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E9=80=89=E8=87=A3?= Date: Mon, 9 Oct 2023 18:04:31 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20=E5=90=91=E6=82=A8=E9=9A=86?= =?UTF-8?q?=E9=87=8D=E4=BB=8B=E7=BB=8D=20-=20WinFormium?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..ca5e10f --- /dev/null +++ b/README.md @@ -0,0 +1,174 @@ +

+ +

+

WinFormium 项目(曾用名:NanUI)

+

用 HTML, CSS 和 JavaScript 轻松构建功能强大的 WinForm 应用程序。

+ +# WinFormium + +Click [[Here]](https://github.com/XuanchenLin/NanUI) to see the English version. + +![GitHub](https://img.shields.io/github/license/XuanchenLin/NanUI) +![Nuget](https://img.shields.io/nuget/v/NetDimension.NanUI) +![Nuget](https://img.shields.io/nuget/dt/NetDimension.NanUI) + +一直以来 NanUI 的发型版本都处于测试阶段,经过了 9 年的迭代,是时候为 NanUI 发布正式版了!在 NanUI v1.0 正式版发布时,将正式启用项目的新名称 - **WinFormium** + +## ⭐ 关于 + +WinFormium 是 .NET 平台上的一个开源框架(曾用名:NanUI),用于使用 HTML5、CSS3 和 JavaScript 创建 WinForm 应用程序的用户界面。 它基于 [Xilium.CefGlue](https://bitbucket.org/xilium/xilium.cefglue/wiki/Home) 项目,该项目是 [Chromium Embedded Framework (CEF)](https://bitbucket.org/chromiumembedded/cef) 的 .NET 实现。 + +如果您正在寻找一个用于创建具有现代用户界面的 WinForm 应用程序的框架,WinFormium 是一个不错的选择。 您可以使用 HTML、CSS 和 JavaScript 创建用户界面,并使用 C# 编写应用程序的业务逻辑。 + +**如果您喜欢 👍,请给 WinFormium 项目一颗星 ⭐。** + +如果这个项目对你有帮助,请考虑资助它。 + +[![支付宝](https://img.shields.io/badge/%E6%8D%90%E8%B5%A0-%E6%94%AF%E4%BB%98%E5%AE%9D-blue)](docs/assets/qrcode.png) +[![微信](https://img.shields.io/badge/%E6%8D%90%E8%B5%A0-%E5%BE%AE%E4%BF%A1-Green)](docs/assets/qrcode.png) + +## 🖥️ 环境要求 + +**开发环境** + +- .NET Framework 4.6.2 或更高版本 / .NET 6.0 或更高版本 +- Visual Studio 2019 或更高版本(强烈建议使用 VS2022) + +**部署环境** + +- Microsoft Windows 7 Service Pack 1 或更高版本 +- .Net Framework 4.6.2 或更高版本 +- .NET 6.0 需要 Windows 7 Service Pack 1 或更高版本 +- .NET 7.0/8.0 需要 Windows 10 或 Windows 11 + +这是一个 **仅限 Windows** 的框架,所以它目前不能在 Linux 或者 MacOS 环境运行。 + +支持的最低 Windows 版本是 Windows 7 Service Pack 1,并且 Windows 7 不支持某些功能(例如 DirectComposition 离屏渲染)。 + +## 🧰 入门 + +### 创建一个简单的应用程序 + +**1. 通过默认模板创建一个 WinForm 应用程序。** + +**2. 安装 WinFormium NuGet 包** + +打开 NuGet 包管理器来安装或使用 NuGet 包管理器控制台,然后运行以下命令来安装 WinFormium nuget 包: + +```powershell +PM> Install-Package NetDimension.NanUI +``` + +安装 WinFormium 所依赖的 Chromium Embedded Framework 依赖项: + +```powershell +PM> Install-Package NetDimension.NanUI.Runtime +``` + +CEF 运行库巨大,再加上众所周知的原因,中国内地玩家请自行设置 NuGet 使用国内镜像。 + +- **Azure CDN** - https://nuget.cdn.azure.cn/v3/index.json +- **华为云** - https://repo.huaweicloud.com/repository/nuget/v3/index.json + +**3. 一个基本的 WinFormium 应用程序需要以下代码:** + +按如下示例修改 **Program.cs** 文件中的代码: + +```csharp +using WinFormium; + +class Program +{ + [STAThread] + static void Main(string[] args) + { + var builder = WinFormiumApp.CreateBuilder(); + + builder.UseWinFormiumApp(); + + var app = builder.Build(); + + app.Run(); + } +} +``` + +创建一个类继承 **WinFormiumStartup** 来配置应用程序: + +```csharp +using WinFormium; + +class MyAPP : WinFormiumStartup +{ + protected override MainWindowCreationAction? UseMainWindow(MainWindowOptions opts) + { + // 设置应用程序的主窗体 + return opts.UseMainFormium(); + } + + protected override void WinFormiumMain(string[] args) + { + // Main函数中的代码应该在这里,该函数只在主进程中运行。这样可以防止子进程运行一些不正确的初始化代码。 + ApplicationConfiguration.Initialize(); + } + + protected override void ConfigurationChromiumEmbedded(ChromiumEnvironmentBuiler cef) + { + // 在此处配置 Chromium Embedded Framwork + } + + protected override void ConfigureServices(IServiceCollection services) + { + // 在这里配置该应用程序的服务 + } +} +``` + +创建一个类实现 **Formium**,用于配置应用程序的主窗口: + +```csharp +using WinFormium; +using WinFormium.Forms; + +class MyWindow : Formium +{ + public MyWindow() + { + Url = "https://www.google.com"; + } + + protected override FormStyle ConfigureWindowStyle(WindowStyleBuilder builder) + { + // 此处配置窗口的样式和属性,或留空以使用默认样式 + + var style = builder.UseSystemForm(); + + style.TitleBar = false; + + style.DefaultAppTitle = "My first WinFomrim app"; + + return style; + } +} +``` + +**4. 生成并运行你的第一个 WinFormium 应用程序** + +## 📖 文档 + +有关更多信息,请参阅 - [文档](docs/README.md) 或 [Wiki](https://github.com/XuanchenLin/WinFormium/wiki)。 + +## 🤖 示例代码 + +- [Minimal WinFormium App](./examples/MinimalWinFormiumApp) - 介绍 WinFormium 的基本用法。 + +## 🔗 第三方库引用和工具集 + +- CEF - [https://bitbucket.org/chromiumembedded/cef]() +- Xilium.CefGlue - [https://gitlab.com/xiliumhq/chromiumembedded/cefglue]() +- Vanara.Library - [https://github.com/dahall/Vanara/]() +- Vortice.Windows - [https://github.com/amerkoleci/Vortice.Windows]() +- SkiaSharp - [https://github.com/mono/SkiaSharp]() +- React - [https://github.com/facebook/react]() +- React-Router - [https://github.com/remix-run/react-router]() +- Vite - [https://github.com/vitejs/vite]()