Wie vermeide ich visuelle Artefakte beim Hosten von WPF-Benutzersteuerelementen in einer WinForms MDI-App?

Beim Hosten von WPF-Benutzersteuerelementen in einer WinForms MDI-App tritt ein Zeichnungsproblem auf, wenn mehrere Formulare überlappen und sehr unterschiedliche visuelle Artefakte auftreten. Diese Artefakte sind meistens sichtbar, nachdem Sie ein untergeordnetes Formular über ein anderes gezogen haben, das auch WPF-Inhalte hostet, oder indem Sie zulassen, dass die Kanten des untergeordneten Formulars vom übergeordneten Haupt-MDI-Element abgeschnitten werden, wenn Sie es herumziehen. Nachdem das Ziehen und Ablegen des untergeordneten Formulars abgeschlossen ist, bleiben die Artefakte im Allgemeinen erhalten, aber ich habe festgestellt, dass die Fokuseinstellung auf das Fenster einer anderen Anwendung und die erneute Fokussierung auf mein Anwendungsfenster so lange erfolgt, bis das untergeordnete Formular wieder funktioniert Formulare werden erneut verschoben. Bitte sehen Sie sich das Bild unten an, das das Problem zeigt.

Diese Microsoft-Mitarbeiter bestehen darauf, dass das WinForms-MDI bereits eine ausreichende Lösung für MDI ist und keine Neuerfindung in WPF erforderlich ist, obwohl ich es kaum glauben kann, dass sie versucht haben, eine WPF-App auf diese Weise zu erstellen, da es offensichtliche Mängel gibt.

AKTUALISIEREN Ein paar zusätzliche Anmerkungen, die ich ausgelassen habe, sind, dass wenn ich diese Formulare erstelle, ohne das MdiParent festzulegen, sie als reguläre Formulare erstellt werden und dieses Problem nicht auftritt. Dieses Problem scheint für das WinForms MDI-Szenario eindeutig zu sein. Außerdem arbeite ich derzeit unter Windows 7 Enterprise und mir ist bewusst, dass die Ergebnisse unter Windows XP möglicherweise sehr unterschiedlich sind, aber ich konnte dies nicht testen.

AKTUALISIEREN Ich habe zu diesem Thema ein paar andere verwandte Ressourcen gefunden, von denen ich dachte, ich sollte sie teilen.

ElementHost Repaint Problem in MDI-Anwendung

ElementHost Repaint Problem in MDI-Anwendung auf Tech Archive