Я пишу приложение на C #, используя GTK # GUI Framework, чтобы сделать его кросс-платформенным
В GTK # делается много вещей, а не в WPF / Windows. Forms, но большинство из них мне удалось решить самостоятельно.
Есть «маленькая» проблема, которая стала не такой «маленькой», когда я попытался ее решить.
Я сохраняю положение окна и развернутый флаг в конфигурационном файле, когда приложение закрывается.
Но когда я пытаюсь восстановить параметры окна, они восстанавливаются не правильно.
Методы, которые я пытался использовать:
SetSizeRequest ():
this.SetSizeRequest((int)config["windowwidth"], (int)config["windowheight"]);
SetDefaultSize ():
this.SetDefaultSize((int)config["windowwidth"], (int)config["windowheight"]);
Изменение размера ():
this.Resize((int)config["windowwidth"], (int)config["windowheight"]);
Проблема в следующем:
Некоторые из этих методов вообще не работают (ничего не меняются). Другие ведут себя странно: установите размер окна не таким, какой был загружен из конфигурации, сделайте окно непрерывно расширяющимся и т. Д.
Я также добавляю ограничение на размер одного конкретного виджета:
Gdk.Geometry geom = new Gdk.Geometry();
geom.MinWidth = 800;
geom.MinHeight = 400;
this.SetGeometryHints(BoxNotebook, geom, Gdk.WindowHints.MinSize);
Когда я использую все это вместе, это становится полным беспорядком.
Как правильно восстановить размер окна при запуске программы?