Eto.Forms 快速上手指南一套跨平台 GUI 代码跑遍三大桌面【免费下载链接】EtoCross platform GUI framework for desktop and mobile applications in .NET项目地址: https://gitcode.com/gh_mirrors/et/EtoEto.Forms 是一个 .NET 跨平台 GUI 框架你用 C# 写一份 UI就能编译到 WindowsWPF / WinForms、macOS 和 LinuxGTK#而且每个平台都走原生工具包界面无异于本机应用不是网页感。如果你的诉求是一套 .NET UI 同时上三大桌面它就是干这个的。移动端iOS / Android有移植版但尚在开发中入门阶段不用碰。一套代码原生工具包Eto 的核心思路Eto 的结构是抽象层 每平台一个适配器。核心库 src/Eto 定义了Form、Button、TreeGridView这些控件但几乎不含具体实现——你new一个控件时它会通过当前加载的平台适配器生成真正的原生控件。这带来两个直接好处不锁定工具包引用哪个平台项目就用哪个工具包Windows 上 WPF 和 WinForms 可自由切换可扩展写一个自定义控件只需为关心的每个平台实现一个IHandler核心 API 一行不用改 三步跑起来从 clone 到弹窗前置条件安装 .NET SDK仓库当前按 net10.0 开发。克隆仓库git clone https://gitcode.com/gh_mirrors/et/Eto然后看 samples/Tutorials/CSharp/Tutorial1/这是官方 HelloWorld跑示例和测试# 运行第一个教程若提示多目标错误加 -f net10.0 dotnet run --project samples/Tutorials/CSharp/Tutorial1 # 跑单元测试排除需要人工交互的 ManualTest 类别 dotnet test --project test/Eto.Test.UnitTests -f net10.0 --filter TestCategory!ManualTest改一行再跑示例全部代码就下面这份把Title或Content改成自己的文字重跑一遍——这是你对 Eto 的第一个体感public class MyForm : Form { public MyForm() { Title Hello, Eto.Forms; Content new Label { Text Some content }; // 窗口内容即一个原生 Label } } static void Main() { new Application().Run(new MyForm()); // 自动探测平台并进入消息循环 }同一个界面在三端的实际效果来自仓库自带截图目录怎么读核心层、适配层与一间活样例间别看文件数量几百个仓库按角色分四块每块用途明确核心层 src/Eto与平台无关的 API。Forms/是控件、Drawing/是图形、Layout/是布局容器。读源码从这里开始平台适配层 src/Eto.Wpf、src/Eto.Gtk、src/Eto.Mac 等每个目录是一个Eto.Platform工程目录名就是工具包名。同一个控件在这里会有多个XxxHandler.cs一一对应各平台的原生实现活样例间 test/Eto.Test这是全仓库最有价值的一个项目——一个 GUI 应用Sections/下每个控件都有一个演示分区跑起来就能逐项翻当前平台每个控件的行为。查 API 语义时它比文档更准嵌入场景 samples/把 Eto 面板嵌进原生窗口或反过来的互操作示例分 Gtk / macOS / WinForms / Wpf 四组关键配置在哪改平台选择与 Handler 注册选平台 选工程引用没有配置文件。核心包Eto.Forms只是抽象层引用Eto.Wpf就出 WPF 界面引用Eto.Gtk就出 GTK 界面。所以让程序在某平台跑起来这个问题答案在.csproj里不在代码里。真正值得你动手改的是注册自定义控件在控件程序集里实现IHandler并按命名约定把平台实现放进控件名.平台ID的程序集Platform.LoadAssembly会自动加载它——这套自动发现机制就写在 src/Eto/Platform.cs 里是理解 Eto 的钥匙。构建层面只有两处小配置根目录 global.json 声明测试运行器是 Microsoft.Testing.Platform配 NUnit 4.editorconfig强制 C# 用制表符缩进、左括号独占一行——提 PR 前记得遵守否则 diff 会很难看。源码阅读路线与第一个动手任务按这个顺序读每一站都有明确产出跑通教程samples/Tutorials/ 下 CSharp 目录有 4 个递进式小教程F# 版可跳过从 HelloWorld 一路加到绑定翻样例间打开 test/Eto.Test/Sections/找跟你业务最像的控件分区读——每个分区本身就是该控件的用法全集啃机制按 Widget.cs → Platform.cs → Application.cs 的顺序把控件 → Handler → 平台这条链路读通之后再读任何平台目录都不慌收尾任务挑一个你最常用到的控件在 Eto.Test 里找到它的分区分别在 Windows 和 Linux 上各跑一遍对比两处行为差异然后去对应平台的XxxHandler.cs里找到差异来源。做完这一件事你就真正进入 Eto 了。【免费下载链接】EtoCross platform GUI framework for desktop and mobile applications in .NET项目地址: https://gitcode.com/gh_mirrors/et/Eto创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考