Пишу приложение на C# с использованием GTK#.
Есть небольшая проблема, которая при детальном рассмотрении превратилась в совсем не «небольшую».
Мне нужно сохранять размер окна приложения и флаг максимизации между запусками.
Данные я сохраняю в конфиге, это не проблема. Но при попытке восстановить сохраненный размер окна при запуске приложения, я столкнулся с неадекватными трудностями.
Пробовал следующие методы:
this.SetSizeRequest((int)config["windowwidth"], (int)config["windowheight"]);
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);
Когда я использую все это вместе, это превращается в совершенно неадекватно ведущее себя окно.
Как же все таки правильно восстанавливать размер окна при запуске приложения?