在gtk中添加总高度的小部件#

时间:2017-02-07 21:00:39

标签: resize widget gtk#

我正在以编程方式将一个小部件列表添加到VBox容器中。 这样做很好,但是我添加的小部件将占用整个窗口的大小,因此如果我只有几个元素,它们就会很大。尽管窗户的大小,我希望它们总是大小相同。

我尝试设置SizeRequest,但这只能用作最小尺寸。 比我把Widget放在固定容器中并将其添加到VBox中。那有助于修复高度,但它也固定了宽度。小部件并没有设置在彼此之下,但仍然有一个间距,好像它们仍然像以前一样大。

如何修复窗口小部件的总高度或容器部件的高度?

1 个答案:

答案 0 :(得分:1)

解决方案是了解包装盒。

本网站解释得很好: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