Tengo un DrawingArea que me gustaría recibir eventos de mouse. De los tutoriales he encontrado que KeyPressEvent también capturará eventos de mouse. Sin embargo, para el siguiente código nunca se llama al controlador.Evento GTK # mouse en el área de dibujo
static void Main()
{
Application.Init();
Gtk.Window w = new Gtk.Window ("");
DrawingArea a = new CairoGraphic();
a.KeyPressEvent += KeyPressHandler;
w.Add(a);
w.Resize (500, 500);
w.DeleteEvent += close_window;
w.ShowAll();
Application.Run();
}
private static void KeyPressHandler(object sender, KeyPressEventArgs args)
{
Console.WriteLine("key press event");
}
He probado un montón de cosas de la lectura de diferentes foros y tutoriales incluyendo:
Adición de un EventBox a las ventanas y poner el DrawingArea en el cuadro evento y la suscripción de la KeyPressEvent para la EventBox. (no funcionó)
Llamando a AddEvents ((int) Gdk.EventMask.AllEventsMask); en todos y cada uno de los widgets
Encontré que suscribiéndome a Windows KeyPressEvent me dio eventos de teclado pero no eventos de clic de mouse.
Todas las páginas correspondientes en los documentos mono me dan errores, así que estoy un poco atascado
Advertencia: si está interesado en la manipulación solo el 'ButtonReleaseEvent', luego, además de agregar' ButtonReleaseMask' a la lista de eventos, también debe agregar 'ButtonPressMask'. De lo contrario, su delegado 'ButtonReleaseEvent' no será llamado. –