Eto
2.8.3
该框架可用于构建使用本机工具包跨多个平台运行的应用程序,并易于使用API。这将使您的应用程序使用单个UI代码库在所有平台上的本机应用程序外观和工作。
对于高级方案,您可以通过将常见的UI包裹在较大的应用程序中来利用每个平台的功能,甚至可以通过每个平台使用自定义实现来创建自己的高级控件。
该框架当前支持创建跨Windows表单,WPF,Monomac和GTK#的桌面应用程序。工作中有一个移动/iOS端口,但被认为是不完整的。
该框架的建立是为了使其在.NET中使用它是自然的。例如,一个简单的Hello-World应用程序可能看起来像:
using Eto . Forms ;
using Eto . Drawing ;
public class MyForm : Form
{
public MyForm ( )
{
Title = " My Cross-Platform App " ;
ClientSize = new Size ( 200 , 200 ) ;
Content = new Label { Text = " Hello World! " } ;
}
[ STAThread ]
static void Main ( )
{
new Application ( ) . Run ( new MyForm ( ) ) ;
}
}或在f#脚本中:
#load " .paket/load/eto.platform.windows.fsx "
// see https://fsprojects.github.io/Paket/paket-generate-load-scripts.html
open Eto. Drawing
open Eto. Forms
type MyForm () as this =
inherit Form ()
do
this.Title <- " My Cross-Platform App "
this.ClientSize <- Size ( 200 , 200 )
this.Content <- new Label ( Text = " Hello F# World! " )
Eto.Platform.Initialize ( Eto.Platforms.WinForms )
let app = new Application ()
let form = new MyForm ()
form.Show () 要开始使用eto.forms创建应用程序,请遵循快速启动指南。
要编译或促进ETO.Forms,请阅读贡献指南。
Windows通过WPF: 
MAC通过Monomac: 
Linux通过GTK#3: 
| 纯eto.forms | Skiasharp版 | |||
|---|---|---|---|---|
| Scottplot | 绘制库,使其易于交互显示大型数据集。 | |||
| Livecharts | .NET的简单,灵活,功能强大和开源数据可视化。 | |||
| 微观 | 创建优雅的跨平台简单图表。 | |||
| Oxyplot | 跨平台绘图.NET的库。 | |||
| Mapsui | AC#应用程序的MAP组件。 | |||
| libvlcSharp | 在ETO应用中显示视频。 | |||
| eto.opentk | 使用Opentk的ETO.Forms的OpenGL视口控制。 | |||
| eto.veldrid | 将veldrid图形库嵌入eto.forms中的控件。 | |||
| eto.codeeditor | 为您提供eto.forms中的代码编辑器控件的软件包。 | |||
| eto.htmlrenderer | 提供ETO控件以显示HTML内容。 | |||
| Eto.Rainbowloading | 一个控件显示Android加载指示器。 | |||
| eto.gifimageview | 显示GIF的控件。 | |||
| Eto.skiaDraw | 在ETO中使用Skiasharp的控制。 | |||
| Eto.Containers | 一些额外的ETO.Forms容器控件。 |
注意:某些软件包在管道中,但直到创建下一个版本才会出现。
您的项目只需要参考eto.dll,并包括您希望定位的相应平台组件。要在Mac平台上运行,您需要捆绑应用程序。
这些平台目前不完整或开发。任何愿意帮助随意这样做的身体!