Die Windows Presentation Foundation kennt ja bekanntlich verschiedene Modi in denen es sein Rendering machen kann. Sie werden als sogenannte Tiers bezeichnet, Tier 0 bezeichnet hierbei die niedrigste Renderingstufe, sprich: Das System ist nicht für hardwarebeschleunigtes Rendering geeignet und berechnet alles im Softwarerendering-Modus. Tier 1 nun bietet teilweise Hardwarebeschleunigung und Tier 2 Systeme sind derart ausgestattet, dass WPF die meisten Darstellungsaufgaben an die Hardware auslagern kann.

Interessant wäre nun für den Entwickler, wenn er seine Applikation darauf testen könnte, wie sie sich im Software-Rendering Modus verhält. In der Vergangenheit gab es dafür nur einen Weg: Ein Registry Key konnte gesetzt werden, der das gesammte WPF Rendering in den SW Modus versetzte. Unschön, wenn man nur eine einzelne Applikation testen möchte…

Seit dem letzten Service Pack gibt es nun eine Abhilfe. Eine wenig bekannte API ermöglicht, eine Applikation gezielt in diesen Modus zu schalten und damit einzeln zu testen.

Ihr Einsatz ist denkbar simpel. Einfach im Load-Event des Fensters / Der Page folgenden Code einfügen:

            HwndSource hwndSource = PresentationSource.FromVisual(this) as HwndSource;
            HwndTarget hwndTarget = hwndSource.CompositionTarget;

            hwndTarget.RenderMode = RenderMode.SoftwareOnly;