在 gtk 中添加具有总高度的 Widget#

Adding a Widget with a total height in gtk#

我正在以编程方式将小部件列表添加到 VBox 容器中。 这工作正常,但我补充说,小部件将占用整个 window 大小,因此如果我只有几个元素,它们会很大。尽管 window.

的大小,我希望它们总是相同的大小

我尝试设置 SizeRequest,但那只能用作最小尺寸。 比我把小部件放在固定容器中并将其添加到 VBox 中。嗯,这有助于固定高度,但它也固定了宽度。并且widgets并没有相互套在下面,而是还是有间距的,好像还是原来那么大。

如何固定小部件的总高度或容器部件的高度?

好吧,解决方案是了解箱子的包装。

这个网站解释的很好:http://www.mono-project.com/docs/gui/gtksharp/widgets/packing-with-boxes/

首先,我必须设置 SizeRequest 并将我的 Item 放入 Alignment Container 中。我没有通过 Add() 将容器添加到 VBox,而是不得不使用 PackStart() 添加它并禁用扩展和填充。

var algn = new Alignment(0,0,0,0);
item.SetSizeRequest (300, 40); //item is the control I want to add
algn.Add (item);
list.PackStart (algn,false,false,0); //list is the VBox