从嵌入式资源更改Gtk.Button图像

时间:2013-10-11 13:36:30

标签: c# mono gtk xamarin

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

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

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

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


编辑:

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

1 个答案:

答案 0 :(得分:4)

不确定如何设法错过Image.LoadFromResource方法或associated constructor:)

那就是你可以做到:

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

更新:使用以下示例代码可以正常使用

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;
        }
}

使用:mcs -res:foo.png,pic -pkg:gtk-sharp-2.0 ButtonApp.cs

进行编译