簡體   English   中英

是否有一個程序變量用於Windows窗體應用程序的邊框?

[英]Is there a programmatic variable for borders around windows form application?

我正在嘗試設置窗體可以設置的最大大小,這可能會有所不同,具體取決於需要顯示的數據。

有沒有辦法在不需要自己計算的情況下獲得Windows窗體周圍的邊框大小?

目前,我使用了SizeClientSize屬性的區別,如:

windowDressingWidth = this.Size.Width - this.ClientSize.Width;
windowDressingHeigth = this.Size.Height - this.ClientSize.Height;

哪個有效,但似乎有些倒退。 是否存在某種SystemInformation或類似的變量來存儲它(如SystemInformation.HorizontalScrollBarHeight為滾動條高度所做的那樣)。

我發現的最接近的是SystemInformation.FrameBorderSize,在我的系統上是8,這是我的windowDressingWidth(16)的一半,所以這可能是每一方。

在這個程序的情況下,它沒有菜單,但(在我的系統上)周圍有空氣邊界,標題和最大化,最小化和關閉控制的頂部較粗。

您可能需要的唯一另一個是SystemInformation.CaptionHeight

我應該注意到這是一個壞主意。 始終設置ClientSize屬性,以自動確保窗口足夠大以提供所需的客戶區。 設計器的工作方式,當您在“屬性”窗口中設置窗體的“大小”屬性時,設計器實際上會在InitializeComponent()方法中記錄ClientSize值。 這可確保您的表單仍然可以在用戶更改首選項的另一台計算機上運行。 像標題字體和按鈕大小。 或者關閉Aero的機器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM