Udostępnij za pośrednictwem


Środki zaradcze: renderowanie okien WPF

W programie .NET Framework 4.6 uruchomionym w systemie Windows 8 lub nowszym całe okno jest renderowane bez wycinków, gdy wykracza poza pojedynczy wyświetlacz w scenariuszu z wieloma monitorami.

Wpływ

Ogólnie rzecz biorąc, renderowanie całego okna na wielu monitorach bez wycinków jest oczekiwanym zachowaniem. Jednak w systemie Windows 7 i starszych wersjach okna WPF są obcięte, gdy wykraczają poza jeden ekran, ponieważ renderowanie części okna na drugim monitorze ma znaczący wpływ na wydajność.

Dokładny wpływ renderowania okien WPF na monitory w systemie Windows 8 i nowszych nie jest dokładnie kwantyfikowalny, ponieważ zależy od dużej liczby czynników. W niektórych przypadkach może to nadal niepożądanie wpływać na wydajność, szczególnie dla użytkowników, którzy uruchamiają aplikacje o dużym zapotrzebowaniu na grafikę i mają okna rozciągające się na kilka monitorów. W innych przypadkach możesz po prostu chcieć zachować spójne zachowanie w wersjach programu .NET Framework.

Czynności zapobiegawcze

Tę zmianę można wyłączyć i przywrócić poprzednie zachowanie przycinania okna WPF, gdy wykracza poza pojedynczy wyświetlacz. Istnieją dwa sposoby, aby to zrobić:

  • <EnableMultiMonitorDisplayClipping> Dodając element do <appSettings> sekcji pliku konfiguracji aplikacji, można wyłączyć lub włączyć to zachowanie w aplikacjach uruchomionych w systemie Windows 8 lub nowszym. Na przykład następująca sekcja konfiguracji wyłącza renderowanie bez wycinania:

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

    Ustawienie <EnableMultiMonitorDisplayClipping> konfiguracji może mieć jedną z dwóch wartości:

    • true, aby umożliwić przycinanie okien w celu monitorowania granic podczas renderowania.

    • false, aby wyłączyć wycinanie okien w celu monitorowania granic podczas renderowania.

  • Ustawiając właściwość EnableMultiMonitorDisplayClipping na true przy uruchamianiu aplikacji.

Zobacz także