Ceci est fait avec Mono.Cairo, qui est une enveloppe autour d'une bibliothèque de dessin native (comme GDI +), donc il fonctionne plutôt bien.
Exemple (tracer une ligne):
using (Cairo.Context g = CairoHelper.Create (myWindow.GdkWindow)) {
g.MoveTo (0, 0);
g.LineTo (10, 10);
g.Color = new Color (1, 1, 1);
g.Stroke();
}
Cairo est manquant des fonctions de plus haut niveau, comme DrawRectangle et FillRectangle. Pinta a un tas de méthodes d'extension qui ajoutent ces fonctions que vous pourriez vouloir regarder:
https://github.com/jpobst/Pinta/blob/master/Pinta.Core/Extensions/CairoExtensions.cs