只有在需要時才呼叫 ScaleControl

只有在應用程式在 SystemAwarePerMonitorV2 模式中執行,且監視器具有與應用程式設計所在電腦不同的自訂 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