WinForms 控制縮放:實現高 DPI 環境下的最佳自動調整
儘管普遍認為 WinForms 在高 DPI 環境下的自動縮放能力有限,但實際上,.NET 2.0 及以後版本已顯著改進了其自動縮放功能。然而,要充分利用這些改進,開發者必須遵循特定的設計準則。
不支援自動縮放的控制
某些控制項在縮放方面有限制:
AutoSize
屬性停用且字體為繼承字體,請明確設定 Font
屬性以防止縮放錯誤。 ScaleControl
方法來處理列寬調整。 Panel1MinSize
、Panel2MinSize
和 SplitterDistance
屬性。 MultiLine
屬性啟用且字體為繼承字體,請明確設定 Font
屬性。 CreateGraphics.DpiX
和 .DpiY
調整 ToolStrip.ImageScalingSize
。 SizeMode
屬性設定為 Zoom
或 StretchImage
。 CreateGraphics.DpiX
和 .DpiY
設定 ImageList.ImageSize
。 設計準則
1. 容器控制
AutoScaleMode
屬性設定為 Font
。 AutoScaleDimensions
屬性賦值為 new System.Drawing.SizeF(6F, 13F)
(如有必要,請調整)。 2. 設計器配置
AutoSize
屬性啟用。 3. 字型管理
Font
屬性。 Font
將重新計算 AutoScaleDimensions
;相應地更新設計器檔案。 4. 停靠與錨定
Dock
屬性來取代 Anchor Right
或 Bottom
。 5. 動態新增的控制
AutoScaleDimensions
和 AutoScaleMode
,然後恢復佈局。 6. 基類和 AutoScale
AutoScaleMode
屬性設為 Inherit
。將其設為其他任何值都可能會停用自動縮放。 7. 窗體大小限制
MaxSize
屬性。在建構子或 OnLoad
事件中將 MinSize
和 MaxSize
設為縮放後的尺寸。 以上是如何最佳化 WinForms 控制項縮放以在高 DPI 環境中自動調整?的詳細內容。更多資訊請關注PHP中文網其他相關文章!