0
我正在使用GTK#GUI框架在C#中編寫應用程序,使其跨平臺。 許多事情正在GTK中完成#不像在WPF/Windows.Forms中,但其中大多數我都能夠自己解決。如何在程序啓動時正確恢復Gtk窗口大小?
有一個「小」的問題,當我試圖解決這個問題時,變得不那麼「小」。 我正在關閉應用程序時保存窗口位置和最大化標誌配置文件。 但是,當我試圖恢復窗口參數,他們正在恢復不正確。
方法我試過用:
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);
當我使用所有這一切,它變得完全混亂。 程序啓動時恢復窗口大小的正確方法是什麼?
嗯,我這樣做,在窗口的構造函數,生成()調用之後。可能是錯的。可能是我應該做一些窗口信號處理程序?激活或其他? – mephisto123
好吧,它在我調用win.Show()後從Main()調用它時起作用。 儘管有時候,當兒童小部件的請求很高時,窗口會開始橫向拉伸。 有沒有辦法限制最大窗口寬度? 我不喜歡窗口寬度超過屏幕寬度。 – mephisto123
我在我的窗口構造函數中使用了'Resize',並且它可以工作。也許你想把太多的東西塞進一個窗口?兒童的申請何時變得太大?你可以通過在'ScrolledWindow's中放置一些東西來解決它嗎? – ptomato