1

我一直在尝试从我在 Xamarin 工作室中构建的 GTK(单声道)应用程序中的代码中设置按钮的图像,但到目前为止我还没有运气。我似乎无法让任何适用于 C#.Net 的方法在 Mono.Netm 中工作,而且我不知道还能去哪里,因为我已经在网上搜索了我能想到的任何东西,以及唯一的结果我得到的是 C#.Net。

我的问题很简单,我希望我忽略了一些东西,答案也很简单:
通过代码从嵌入式资源设置 Gtk.Button 图像的方法是什么?

我尝试过的事情:
* 反射
* ResourceManager
* Image.FromStream (在 Gtk.Image 中不存在)
* 无论我能想到什么......

很有可能我做错了什么,但如果是这样,我不知道是什么,所以请帮助我,即使是通过在谷歌上指出我正确的方向......


编辑:

出于某种原因,@Jester 的解决方案似乎对我不起作用,因为如果您更改按钮的图像,并且在更改它的标签之后,该按钮只会显示标签并删除图像。但这对另一个主题来说是个问题。

4

1 回答 1

4

Not sure how you managed to miss the Image.LoadFromResource method or the associated constructor :)

That is you can simply do:

btn.Image = Image.LoadFromResource("name-of-resource");

Update: works fine for me with this sample code:

using Gtk;
using System;

public class ButtonApp  
{
        public static int Main (string[] args)
        {
                Application.Init ();
                Window win = new Window ("Button Tester");
                win.SetDefaultSize (200, 150);
                win.DeleteEvent += new DeleteEventHandler (Window_Delete);
                Button btn = new Button ("Click Me");
                btn.Image = Image.LoadFromResource("pic");
                win.Add (btn);
                win.ShowAll ();
                Application.Run ();
                return 0;
        }
        static void Window_Delete (object obj, DeleteEventArgs args)
        {
                Application.Quit ();
                args.RetVal = true;
        }
}

Compile using: mcs -res:foo.png,pic -pkg:gtk-sharp-2.0 ButtonApp.cs

于 2013-10-11T14:07:35.300 回答