Cross platform GUI framework for desktop and mobile applications in .NET
C# Shell
Switch branches/tags
Nothing to show
Pull request Compare This branch is 14 commits behind carlokok:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


A cross platform desktop and mobile user interface framework



This framework is built so that you can target multiple platforms with one UI codebase.

The overall goal of this framework is to expose a common API that can be used to build functional applications that run across platforms using their native toolkit. This will make your applications look and work as if it were a native application on all platforms.

For advanced scenarios, you can take advantage of each platform's capabilities by wrapping your common UI in a larger application, or even create your own high-level controls with a custom implementations per platform.

This framework currently supports creating Desktop applications that work across Windows Forms, WPF, MonoMac, and GTK#. There is a Mobile/iOS port in the works, but is considered incomplete.

This framework was built so that using it in .NET is natural. For example, a simple hello-world application might look like:

public class MyForm : Form
	public MyForm ()
		Text = "My Cross-Platform App";
		Size = new Size (200, 200);
		var label = new Label { Text = "Hello World!" };
		this.AddDockedControl (label);
	static void Main () {
		Generator generator;

		if (Eto.Misc.Platform.IsWindows)
			generator = Generator.GetGenerator("Eto.Platform.Windows.Generator, Eto.Platform.Windows");
		else if (Eto.Misc.Platform.IsMac)
			generator = Generator.GetGenerator("Eto.Platform.Mac.Generator, Eto.Platform.Mac");
		else // use GTK#
			generator = Generator.GetGenerator("Eto.Platform.GtkSharp.Generator, Eto.Platform.Gtk");

		var app = new Application(generator);
		app.Initialized += delegate {
			app.MainForm = new MyForm ();
			app.MainForm.Show ();
		app.Run ();



  • Eto.Forms - User interface
  • Eto.Drawing - Drawing/graphical routines
  • Eto.IO - Disk/Virtual directory abstraction
  • Eto.Platform.[Platform] - platform implementations

Currently supported targets

  • OS X: MonoMac (Cocoa)
  • Linux: GTK#
  • Windows: Windows Forms or WPF

Under development

  • iOS using MonoTouch

Future plans

  • Android using Mono for Android (or equivalent)