Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Gtk#:如何在Gdk中转换Gtk.Image?_C#_Gtk# - Fatal编程技术网

C# Gtk#:如何在Gdk中转换Gtk.Image?

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

我想用MonoDevelop2.4用Mono/Gtk编写一个简单的2D游戏。我的第一个兴趣是在窗口画布中显示播放器角色的PNG图像(稍后我将响应键盘事件以移动它)。然而,我在这里发现了一个令人不安的问题:当我为玩家角色获取一个Gtk.Image对象时,Gdk窗口的DrawImage方法需要一个Gdk图像。我怎样才能把第一个转换成后一个呢

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;我写这个方法是为了让问题更容易理解。谢谢你的链接!