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

本文关键字:Gtk Button 图像 资源 | 更新日期: 2023-09-27 18:35:09

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

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

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

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


编辑:

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

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

不确定您是如何错过 Image.LoadFromResource 方法或关联的构造函数:)

也就是说,您可以简单地执行以下操作:

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