Gtk#: разноцветные элементы ComboBox
В разрабатываемой программе необходимо в элемент типа ComboBox выводить значение RGB(т.е. "123,90,45", "80,50,60" и т.д.), подсвечивая строчки ComboBox соответствующим цветом. В .NET Framework это можно осуществить с помощью создания обработчика события ComboBox.DrawItem, но в Gtk.ComboBox нет ничего подобного. Подскажите пожалуйста, как раскрасить элементы ComboBox в Gtk#(необходимо не для наведения красивости в программе, а для обеспечения её функционирования)?
Код:
/* create a new GtkComboBox with a the model... */
combo = gtk_combo_box_new_with_model(model);
/* ...and unref our copy of the model */
g_object_unref(model);
/* create a new cell renderer... */
cell = gtk_cell_renderer_text_new();
/* ...pack it into the combo box... */
gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), cell, TRUE);
/* ...map the "text" attribute to the first row in our model... */
gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(combo), cell, "text", 0);
/* ...map the "foreground" attribute to the second row in our model... */
gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(combo), cell, "foreground", 1);
/* ...and set the background color to yellow */
g_object_set(cell, "cell-background", "#FFFF00", NULL);
return combo;
combo = gtk_combo_box_new_with_model(model);
/* ...and unref our copy of the model */
g_object_unref(model);
/* create a new cell renderer... */
cell = gtk_cell_renderer_text_new();
/* ...pack it into the combo box... */
gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), cell, TRUE);
/* ...map the "text" attribute to the first row in our model... */
gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(combo), cell, "text", 0);
/* ...map the "foreground" attribute to the second row in our model... */
gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(combo), cell, "foreground", 1);
/* ...and set the background color to yellow */
g_object_set(cell, "cell-background", "#FFFF00", NULL);
return combo;
Цитата: UserNet2008
Но лучше не менять цвет
источник
Код:
/* create a new GtkComboBox with a the model... */
combo = gtk_combo_box_new_with_model(model);
/* ...and unref our copy of the model */
g_object_unref(model);
/* create a new cell renderer... */
cell = gtk_cell_renderer_text_new();
/* ...pack it into the combo box... */
gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), cell, TRUE);
/* ...map the "text" attribute to the first row in our model... */
gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(combo), cell, "text", 0);
/* ...map the "foreground" attribute to the second row in our model... */
gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(combo), cell, "foreground", 1);
/* ...and set the background color to yellow */
g_object_set(cell, "cell-background", "#FFFF00", NULL);
return combo;
combo = gtk_combo_box_new_with_model(model);
/* ...and unref our copy of the model */
g_object_unref(model);
/* create a new cell renderer... */
cell = gtk_cell_renderer_text_new();
/* ...pack it into the combo box... */
gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), cell, TRUE);
/* ...map the "text" attribute to the first row in our model... */
gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(combo), cell, "text", 0);
/* ...map the "foreground" attribute to the second row in our model... */
gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(combo), cell, "foreground", 1);
/* ...and set the background color to yellow */
g_object_set(cell, "cell-background", "#FFFF00", NULL);
return combo;
Это не Gtk#, это то, как изменить цвет элемента ComboBox в Gtk++, т.е. язык немного не тот, Вы привели C++, а мне необходим C#