Quiero escribir un juego de Snake usando GTK# pero durante varios días no puedo descifrar la forma de manejar DrawingArea . En todos los ejemplos que he encontrado, hay suscripción al evento drawingArea.ExposeEvent , un método como:
void OnDrawingAreaExposed (object source, ExposeEventArgs args) { DrawingArea darea = (DrawingArea) source; Cairo.Context ctx = Gdk.CairoHelper.Create (darea.GdkWindow); // drawing here ... ((IDisposable) ctx.Target).Dispose(); ((IDisposable) ctx).Dispose(); } Pero no tengo el evento .ExposeEvent disponible en el objeto DrawingArea ni el tipo de datos ExposeEventArgs . Ni siquiera sé de qué se trata. Me gustaría ocuparme de la representación, tal vez incluso de otra manera, por ejemplo, para hacer una imagen de mapa de bits y luego asignarla a algo como PictureBox de WinForms.
Además, tengo que dibujar a intervalos establecidos, lo que significa que también necesito otros métodos GTK#.
darea.GdkWindow para crear Cairo.Context , pero está "obsoleto". Intenté simplemente crear un Cairo.Context y luego dibujar con el darea.Draw(cc) , pero eso tampoco funciona.