在GTK#中使用Mono绘图而不调用Expose事件

| 我需要创建一个程序来测试一些过程世界创建算法,为此我需要借鉴一下。但是,GTK#\的DrawingArea小部件要求所有绘图都在ExposesEvent中完成。不通过该事件处理程序,如何绘制以及在哪个窗口小部件中绘制?主要问题是我无法将绘图处理程序附加到事件上,因为多个算法使用相同的绘图区域,因此在完成绘图后我将其删除。如果我调整窗口大小或移动窗口,则所有生成的图形都会消失,这不是很有用。 我尝试使用Mono.Cairo而不是System.Drawing,但是相同的规则似乎也适用于它。 提前致谢。     
已邀请:
        您需要使用离线像素图(带有Gtk / Gdk)或表面(开罗),以便对其进行所有绘制,并且当暴露事件到来时,您只需将图像复制到显示小部件即可。 请参阅此https://github.com/mono/gtk-sharp/blob/master/sample/Scribble.cs中的Mono.Cairo示例(并检查该文件的旧版本以查找缺少cairo的代码,但是我建议使用开罗前进)。     

要回复问题请先登录注册