В Gtk, как мне сделать Button только со стоковой иконкой? - PullRequest
2 голосов
/ 14 ноября 2009

Я хочу создать кнопку со стоковой иконкой «Удалить», но без текста «Удалить». Если я использую Button button = new Button(Stock.Remove);, я получаю обратное: только текст, а не значок. У меня будет много таких кнопок, и текст заставит их выглядеть загроможденными. Как мне получить только значок?

Примечание: это обычные кнопки, а не кнопки на панели инструментов.

Edit: Вот как это выглядит в настоящее время:

cluttered

Я хочу заменить эти кнопки на маленькие, ненавязчивые кнопки только для значков.

Ответы [ 2 ]

6 голосов
/ 14 ноября 2009

Сначала создайте акцию Gtk.Image, а затем создайте Gtk.Button, передав изображение в качестве аргумента.

Image image = new Image(Stock.Remove, IconSize.Button);
Button button = new Button(image);
1 голос
/ 16 ноября 2009

См. Список GTK + стоковые изображения . Затем просто используйте один из этих идентификаторов в вашем вызове для создания кнопки, совершенно не нужно вручную создавать изображение:

Button remove = Button.NewFromStock(Stock.Remove);

Я считаю, что так чище, чем "знать" и иметь дело с подсказкой правильного размера изображения.

ОБНОВЛЕНИЕ: На момент написания ссылки Mono фактически не работает. Вот список товарных позиций и описание функции <a href="http://library.gnome.org/devel/gtk/stable/GtkButton.html#gtk-button-new-from-stock" rel="nofollow noreferrer">gtk_button_new_from_stock()</a> из базовой документации GTK + C. Обёртка GTK #, выполненная в Mono, похоже, очень близко следует оригиналу.

...