WPF 창 렌더링의 완화

Windows 8 이상에서 실행되는 .NET Framework 4.6에서는 다중 모니터 시나리오에서 단일 디스플레이 외부로 확장될 때 전체 창이 클리핑 없이 렌더링됩니다.

영향

일반적으로 클리핑하지 않고 여러 모니터에서 전체 창을 렌더링하는 것이 예상되는 동작입니다. 그러나 Windows 7 및 이전 버전에서는 두 번째 모니터에서 창의 일부를 렌더링하면 성능에 상당한 영향을 주므로 WPF 창이 단일 디스플레이 이상으로 확장되면 잘립니다.

Windows 8 이상의 모니터에서 WPF 창을 렌더링할 때의 정확한 영향은 많은 요소에 따라 달라지므로 정확하게 정량화할 수 없습니다. 경우에 따라 성능에 바람직하지 않은 영향을 줄 수 있으며, 특히 그래픽 집약적 애플리케이션을 실행하고 모니터에 Windows가 있는 사용자에게는 바람직하지 않은 영향을 줄 수 있습니다. 다른 경우에는 .NET Framework 버전 간에 일관된 동작을 원할 수 있습니다.

완화 방법

이 변경 내용을 사용하지 않도록 설정하고 단일 디스플레이 이상으로 확장할 때 WPF 창을 클리핑하는 이전 동작으로 되돌릴 수 있습니다. 이 작업을 수행하는 방법에는 두 가지가 있습니다.

  • 애플리케이션 구성 파일의 섹션에 <EnableMultiMonitorDisplayClipping> 요소를 추가 <appSettings> 하면 Windows 8 이상에서 실행되는 앱에서 이 동작을 사용하지 않도록 설정하거나 사용하도록 설정할 수 있습니다. 예를 들어 다음 구성 섹션에서는 클리핑 없이 렌더링을 사용하지 않도록 설정합니다.

    <appSettings>
        <add key="EnableMultiMonitorDisplayClipping" value="true"/>
      </appSettings>
    

    구성 설정에는 <EnableMultiMonitorDisplayClipping> 다음 두 값 중 하나가 있을 수 있습니다.

    • true- 렌더링하는 동안 창을 클리핑하여 경계를 모니터링할 수 있도록 합니다.

    • false- 렌더링하는 동안 경계를 모니터링하기 위해 창의 클리핑을 사용하지 않도록 설정합니다.

  • 앱 시작 시 EnableMultiMonitorDisplayClipping 속성을 true로 설정합니다.

참고하십시오