[Gtk-sharp-list] Problem setting image on Button

James Fitzsimons james.fitzsimons at gmail.com
Sat Apr 8 07:18:31 EDT 2006

Hi all,

Not sure whether this is just my lack of Gtk# knowledge or if it's a bug
so I thought I'd post here. 

I am hacking on a new feature for f-spot and am trying to change the
image on a Button widget in that widgets click event handler.
Unfortunately I can't seem to get this to work for any images other than
Gtk Stock images.

Here is a very simple example I mocked up to test this.

using System;
using Gtk;

public class MyWindow : Window
	Gtk.Button button;
	public MyWindow () : base ("MyWindow")
		this.SetDefaultSize (400, 300);
		this.DeleteEvent += new DeleteEventHandler (OnMyWindowDelete);
		Gtk.Image img = new Gtk.Image ("f-spot-crop.png");
		button = new Button (img); //L1
		button.Clicked  += ClickEventHandler;
		this.Add (button);
		this.ShowAll ();
	private void ClickEventHandler (object obj, EventArgs args)
		Gtk.Image img = new Gtk.Image ("f-spot-desaturate.png");
		button.Image = img;
	void OnMyWindowDelete (object sender, DeleteEventArgs a)
		Application.Quit ();
		a.RetVal = true;

This displays the crop image correctly, but never changes it. I the line
commented L1 is changed to look like this:

button = new Button (Stock.New); //L1

And the click event handler is changed to look like this:

private void ClickEventHandler (object obj, EventArgs args)
	Gtk.Image img = new Gtk.Image();
	img.Stock = Stock.About;
	button.Image = img;

Then the image changes on the first click of the button.

Any advise on why this isn't working with custom images would be greatly

James Fitzsimons
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://lists.ximian.com/pipermail/gtk-sharp-list/attachments/20060408/f973e7b3/attachment.bin

More information about the Gtk-sharp-list mailing list