Mitigazione: Rendering delle finestre WPF

In .NET Framework 4.6 in esecuzione in Windows 8 e versioni successive, viene eseguito il rendering dell'intera finestra senza ritaglio quando si estende all'esterno di un singolo display in uno scenario con più monitor.

Impatto

In generale, visualizzare un'intera finestra su più monitor senza essere tagliata è il comportamento previsto. Tuttavia, in Windows 7 e versioni precedenti, le finestre WPF vengono ritagliate quando si estendono oltre un singolo display perché il rendering di una parte della finestra nel secondo monitor ha un impatto significativo sulle prestazioni.

L'impatto preciso del rendering delle finestre WPF su monitor in Windows 8 e versioni successive non è esattamente quantificabile perché dipende da un numero elevato di fattori. In alcuni casi, può comunque produrre un impatto indesiderato sulle prestazioni, in particolare per gli utenti che eseguono applicazioni a elevato utilizzo di grafica e hanno monitor di windows stradling. In altri casi, è sufficiente un comportamento coerente tra le versioni di .NET Framework.

Mitigazione

È possibile disabilitare questa modifica e ripristinare il comportamento precedente di ritaglio di una finestra WPF quando si estende oltre un singolo display. Esistono due modi per eseguire questa operazione:

  • Aggiungendo l'elemento <EnableMultiMonitorDisplayClipping> alla <appSettings> sezione del file di configurazione dell'applicazione, è possibile disabilitare o abilitare questo comportamento nelle app in esecuzione in Windows 8 o versioni successive. Ad esempio, la seguente sezione di configurazione disabilita il rendering quando non c'è ritaglio:

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

    L'impostazione <EnableMultiMonitorDisplayClipping> di configurazione può avere uno dei due valori seguenti:

    • true, per abilitare il ritaglio delle finestre per monitorare i limiti durante il rendering.

    • false, per disabilitare il ritaglio delle finestre per monitorare i limiti durante il rendering.

  • Impostando la EnableMultiMonitorDisplayClipping proprietà su true all'avvio dell'app.

Vedere anche