从嵌入的资源更改 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的解决方案似乎对我不起作用,因为如果您更改按钮的图像,并且在更改其标签后立即更改,按钮将仅显示标签并删除图像。但这是另一个头的浑浑。
不确定您是如何错过 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