Это делается с помощью Mono.Cairo, который является оболочкой для нативной библиотеки чертежей (например, GDI +), поэтому он работает довольно хорошо.
Пример (нарисуйте линию):
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 ();
}
В Каире отсутствуют функции более высокого уровня, такие как DrawRectangle и FillRectangle.У Pinta есть несколько методов расширения, которые добавляют эти функции, которые вы можете посмотреть:
https://github.com/jpobst/Pinta/blob/master/Pinta.Core/Extensions/CairoExtensions.cs