2

在我的应用程序中,我有两个可以更改窗口布局的切换按钮。他们将删除或添加按钮,从而有效地改变请求的总大小。由于该窗口的 Resizeable 属性设置为 false,通常窗口会自动调整大小以适应其内容,无论它们比以前大还是小。

但是,如果我在窗口隐藏时更改布局,则在使其可见后,窗口的尺寸将不会更改以适应布局。我移动它后它会自动调整大小。

//Code example
Window.Hide();
ChangeLayout(Window);
Window.Show();

我假设 GTK 在容器不可见时跳过检查大小变化。有没有办法强制它重新计算它的大小?

谢谢你。

PS:似乎只发生在Windows中。也许这与操作系统有关?

4

1 回答 1

1

我没有 Windows 机器来测试它,但试试这个作为一种解决方法:

Window.Hide();
ChangeLayout(Window);
Window.Unrealize();
Window.Show();

您也可以尝试在更改布局之前将窗口设置为可调整大小,然后将其设置为不可调整:

Window.Hide();
Window.Resizable = true;
ChangeLayout(Window);
Window.Resizable = false;
Window.Show();
于 2012-09-13T16:18:33.540 回答