C# Gtk#:如何在Gdk中转换Gtk.Image?
我想用MonoDevelop2.4用Mono/Gtk编写一个简单的2D游戏。我的第一个兴趣是在窗口画布中显示播放器角色的PNG图像(稍后我将响应键盘事件以移动它)。然而,我在这里发现了一个令人不安的问题:当我为玩家角色获取一个Gtk.Image对象时,Gdk窗口的DrawImage方法需要一个Gdk图像。我怎样才能把第一个转换成后一个呢C# Gtk#:如何在Gdk中转换Gtk.Image?,c#,gtk#,C#,Gtk#,我想用MonoDevelop2.4用Mono/Gtk编写一个简单的2D游戏。我的第一个兴趣是在窗口画布中显示播放器角色的PNG图像(稍后我将响应键盘事件以移动它)。然而,我在这里发现了一个令人不安的问题:当我为玩家角色获取一个Gtk.Image对象时,Gdk窗口的DrawImage方法需要一个Gdk图像。我怎样才能把第一个转换成后一个呢 public static void ShowImage(Gdk.Window w, Gtk.Image image) { w.DrawImage( S
public static void ShowImage(Gdk.Window w, Gtk.Image image)
{
w.DrawImage( Style.ForegroundGC( StateType.Normal ),
image, // ERROR
0, 0, image.Pixbuf.Width, image.Pixbuf.Height,
image.Pixbuf.Width, image.Pixbuf.Height
);
}
这可能显得过于简单,但老实说,我还没有找到答案。Gtk.Image是一个小部件(或winforms术语中的控件)
见:
根据您的问题描述,我认为您不希望使用Gtk.Image,而是使用Gdk.Image
例如,将ShowImage方法更改为:public static void ShowImage(Gdk.Window w,Gdk.Image Image)Gtk.Image.ImageProp是保存Gtk.Image小部件中的Gdk.Image的属性
public static void ShowImage(Gdk.Window w, Gtk.Image image)
{
w.DrawImage( Style.ForegroundGC( StateType.Normal ),
image.ImageProp, // TRY THIS
0, 0, image.Pixbuf.Width, image.Pixbuf.Height,
image.Pixbuf.Width, image.Pixbuf.Height
);
}
谢谢,但问题不在于方法签名,而在于如何从Gtk.Image获取Gdk.Image;我写这个方法是为了让问题更容易理解。谢谢你的链接!