只有在需要時才呼叫 ScaleControl
只有在應用程式在 SystemAware 或 PerMonitorV2 模式中執行,且監視器具有與應用程式設計所在電腦不同的自訂 DPI 設定時,通常才需要縮放比例。 在這些情況下,Windows Forms 執行階段會根據監視器的自訂 DPI 設定來計算縮放比例,並使用新的縮放係數來呼叫 ScaleControl(SizeF, BoundsSpecified)。 為了改善效能,ScaleControl
現在只有在計算的縮放係數是 1.0F 以外的值時,才會進行呼叫 (也就是需要調整)。 如果應用程式覆寫 ScaleControl
並執行覆寫中的任何自訂動作,這項變更可能會中斷您的應用程式。
導入的版本
.NET 6 服務 6.0.101
舊的行為
在 .NET 6 GA 版本和較舊的版本中,每次 PerformAutoScale() 在應用程式的容器控制項上受到呼叫時,便會呼叫虛擬公用 API ScaleControl(SizeF, BoundsSpecified)。 也就是說,每當有版面配置或字型變更時,都會呼叫方法,而不論是否需要縮放比例。
新的行為
從 .NET 6 服務版本開始,只有在需要調整表單或控制項時,才會呼叫 ScaleControl(SizeF, BoundsSpecified)。 Windows Forms 執行階段會根據監視器的自訂 DPI 設定和應用程式設計所在監視器的 DPI 設定來計算縮放係數。 只有在縮放比例指出需要縮放係數時,才會呼叫 ScaleControl(SizeF, BoundsSpecified)。
變更類別
此變更會影響來源相容性。
變更原因
這項變更是為了改善效能,並避免不必要的配置。
建議的動作
檢查您的程式碼是否在這些可覆寫的方法中執行任何自訂的非調整動作。
受影響的 API
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應