在 Windows 8 和更高版本上執行的 .NET Framework 4.6 中,在多螢幕情境下,當整個視窗延伸到單一顯示器之外時,整個視窗會被完整呈現,而不會被裁剪。
影響
一般而言,跨多個監視器轉譯整個視窗而不裁剪是預期的行為。 不過,在 Windows 7 和更早版本上,當 WPF 視窗延伸超過單一顯示器時會被裁剪,因為在第二個顯示器上渲染視窗部分會對效能造成重大影響。
在 Windows 8 和更新版本的系統中,跨多顯示器呈現 WPF 視窗的精確影響無法量化,因為這取決於許多因素。 在某些情況下,它仍可能對效能產生不良影響,尤其是對於執行圖形密集型應用程式並且有視窗跨越多個螢幕的使用者。 在其他情況下,您可能只想要在所有 .NET Framework 版本中保持一致的行為。
緩和措施
您可以停用此變更,並將 WPF 視窗的行為還原為在超出單一顯示器時進行裁剪的模式。 有兩種方式可以執行這項作:
將
<EnableMultiMonitorDisplayClipping>元素新增至應用程式組態檔的<appSettings>區段,您可以在執行於 Windows 8 或更新版本的應用程式中啟用或停用此行為。 例如,下列組態區段會停用渲染而不進行裁剪:<appSettings> <add key="EnableMultiMonitorDisplayClipping" value="true"/> </appSettings><EnableMultiMonitorDisplayClipping>組態設定可以有兩種值其中之一:true,表示在轉譯期間啟用視窗裁剪以監視界限。false,表示在轉譯期間停用視窗裁剪以監視界限。
在應用程式啟動時,將 EnableMultiMonitorDisplayClipping 屬性設定為
true。