Эта структура может быть использована для создания приложений, которые работают на нескольких платформах, используя свой собственный инструментарий, с простым в использовании API. Это заставит ваши приложения выглядеть и работать как нативное приложение на всех платформах, используя одну кодовую базу пользовательского интерфейса.
Для расширенных сценариев вы можете воспользоваться возможностями каждой платформы, обернув ваш общий пользовательский интерфейс в более широкое приложение или даже создать свои собственные управления высоким уровнем с помощью пользовательских реализаций на платформу.
В настоящее время эта структура поддерживает создание настольных приложений, которые работают в формах 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 через мономак: 
Linux через GTK#3: 
| Чистый Eto.forms | Skiasharp Edition | |||
|---|---|---|---|---|
| Скоттплот | Построение библиотеки, которая позволяет легко интерактивно отображать большие наборы данных. | |||
| LiveCharts | Простая, гибкая, мощная и визуализация данных с открытым исходным кодом для .NET. | |||
| Микрочарты | Создайте элегантные кроссплатформенные простые диаграммы. | |||
| Оксипл | Кроссплатформенное построение библиотеки для .NET. | |||
| Карты | Компонент AC# MAP для приложений. | |||
| Libvlcsharp | Показать видео в приложении ETO. | |||
| Eto.opentk | OpenGL Viewport Control для ETO.Forms с использованием Opentk. | |||
| Eto.veldrid | Управление для внедрения библиотеки графики Veldrid в Eto.forms. | |||
| Eto.codeeditor | Пакет, который дает вам управление редактором кода в Eto.forms. | |||
| Eto.htmlrenderer | Предоставляет элемент управления ETO для отображения HTML -контента. | |||
| Eto.rainbowloading | Управление, показывающее индикатор загрузки Android. | |||
| Eto.gifimageview | Управление для отображения GIF. | |||
| Eto.skiadraw | Контроль, позволяющий использовать Skiasharp в ETO. | |||
| Eto.containers | Некоторые дополнительные элементы управления контейнерами ETO.forms. |
Примечание. Некоторые пакеты находятся в конвейере, но не появятся до создания следующего релиза.
Ваш проект должен только ссылаться на eto.dll и включить соответствующую сборку платформы, на которую вы хотите нацелиться. Чтобы запустить на платформе MAC, вам нужно объединить свое приложение.
Эти платформы в настоящее время являются неполными или в разработке. Любые нетерпеливые тела, желающие помочь не стесняться сделать это!