Как я могу получить высоту treeview/treeviewcolumn, пожалуйста? У меня есть простой код с макетом (внутри - большое дерево) и вертикальная полоса прокрутки в таблице. Когда я устанавливаю малую высоту макета, я не вижу всех элементов treeview, и когда я устанавливаю его большим, я вижу целую таблицу с пустым пространством в нижней части макета. Можно ли установить макет, чтобы он имел ровно такую же высоту, как treeview, или самый большой из treeviewcolumns? Спасибо заранее. Кусок кода:Как получить высоту treeview/treeviewcolumn?
tree = new Gtk.TreeView();
vadjustment = new Gtk.Adjustment(0, 0, 0, 0, 0, 0);
vscrollbar = new Gtk.VScrollbar(vadjustment);
Lyout layout = new Layout(null, vadjustment);
layout.Put(tree, 0, 0);
Table table = new Table(1, 2, false);
table.Attach(layout, 0, 1, 0, 1, Gtk.AttachOptions.Expand|Gtk.AttachOptions.Fill, Gtk.AttachOptions.Expand|Gtk.AttachOptions.Fill, 0, 0);
table.Attach(vscrollbar, 1, 2, 0, 1, Gtk.AttachOptions.Shrink, Gtk.AttachOptions.Shrink|Gtk.AttachOptions.Fill, 0, 0);
box.PackStart (table, true, true, 4);
vbox1.Add(box);
...
TreeViewColumn first = new TreeViewColumn();
first.Title=h1;
Gtk.CellRendererText first_name_cell = new Gtk.CellRendererText();
first.PackStart(prvy_name_cell, true);
first_name_cell.Width=20;
...
tree.AppendColumn (first);
layout.SetSize(800, ???);
И один другой вопрос - можно ли применять черный цвет рамки для элементов TreeView?
Привет, благодарю вас за ответ. Я понял, что вы понимаете, что у вас есть, но у меня есть небольшая проблема, чтобы получить размер дерева от функции. Я создал событие - tree.ExposeEvent + = HandleTreeExposeEvent; void HandleTreeExposeEvent (объект o, ExposeEventArgs args) \t { \t \t layout.SetSize (800, 'КАК ПОЛУЧИТЬ ЭТОТ НОМЕР'); \t} ' – matej148
Есть ли у древовидной структуры некоторую функцию, чтобы получить ее высоту? Заранее спасибо. – matej148
«Распределение» виджетов содержит его высоту. Я не знаю gtk #, но gtk имеет метод gtk_widget_get_allocation(). – ergosys