Software Rendering für WPF Anwendung/Fenster erzwingen

Ich hatte hier heute das Problem das eine Anwendung die ich auf einem Remotesystem über eine etwas ältere Version des Teamviewers angeschaut habe nur ein leeres weißes Fenster dargestellt hat. Schnell war rausgegoogelt dass das an Unverträglichkeiten mit der hardware-beschleunigten Grafikausgabe zusammenhängt.

Wie deaktivert man also Quellcodeseitig das Hardware-Rendering eines WPF-Fensters?

So:


protected override void OnSourceInitialized(EventArgs e)
    {
    var hwndSource =
        PresentationSource.FromVisual(this) as HwndSource;
    if (hwndSource != null)
    {
        hwndSource.CompositionTarget.RenderMode =
            RenderMode.SoftwareOnly;
    }
    base.OnSourceInitialized(e);
}

Man überschreibt OnSourceInitialized im entsprechenden Window und importiert, damit das ganze Ding nicht meckert noch System.Windows.Interop.

On this day..

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.