3 回答

TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊
我的經(jīng)驗(yàn)與當(dāng)前最高投票的答案完全不同。通過逐步完成.NET框架代碼并仔細(xì)閱讀參考源代碼,我得出結(jié)論認(rèn)為自動(dòng)擴(kuò)展工作的所有內(nèi)容都已到位,并且只有一個(gè)微妙的問題在某處弄亂它。事實(shí)證明這是真的。
如果您創(chuàng)建一個(gè)正確可重排/自動(dòng)調(diào)整大小的布局,那么幾乎所有內(nèi)容都應(yīng)該自動(dòng)運(yùn)行,使用Visual Studio使用的默認(rèn)設(shè)置(即,父窗體上的AutoSizeMode = Font,以及其他所有內(nèi)容的Inherit)。
唯一的問題是,如果您在設(shè)計(jì)器中的表單上設(shè)置了Font屬性。生成的代碼將按字母順序?qū)Ψ峙溥M(jìn)行排序,這意味著AutoScaleDimensions
將在之前 分配Font
。不幸的是,這完全打破了WinForms自動(dòng)縮放邏輯。
修復(fù)很簡單。要么根本不在設(shè)計(jì)器中設(shè)置Font
屬性(在表單構(gòu)造函數(shù)中設(shè)置它),要么手動(dòng)重新排序這些賦值(但是每次在設(shè)計(jì)器中編輯表單時(shí)都必須繼續(xù)這樣做)。Voila,幾乎完美和全自動(dòng)縮放,最小的麻煩。甚至表單大小也可以正確縮放。
我會(huì)在遇到它們時(shí)列出已知問題:
嵌套
TableLayoutPanel
計(jì)算控制邊距不正確。沒有已知的解決方法,完全避免邊距和填充 - 或避免嵌套的表布局面板。
- 3 回答
- 0 關(guān)注
- 814 瀏覽
添加回答
舉報(bào)