Hallo und herzlich willkommen.
Die Frage ist natürlich, was genau von den jeweiligen Controls du wirklich gebrauchst. Hast du das Grid lediglich, um eine Art Tabelle und damit eine Positionierung zu bekommen? Oder möchtest du hier auch GridSplitter verwenden, damit die Breiten und Höhen verstellbar sind? Wenn nein, dann kannst du auch mit einem DockPanel arbeiten.
Das aktuell im Grid positionierte DockPanel: Ist dieses wirklich notwendig? Oder kann das eventuell durch ein StackPanel auch erledigt werden?
Grundsätzlich solltest du dir darüber Gedanken machen, ob du für deine Zwecke auch tatsächlich das richtige Panel einsetzt, denn mit zusätzlicher Funktionalität des eingesetzten Panels erhöht sich auch die Komplexität beim Ausrichten und Rendern (siehe dazu auch den
MSDN-Artikel Optimieren der Leistung: Layout und Entwurf). In diesem Artikel findet sich auch ein wichtiger Punkt zum Thema Bottom-Up und Top-Down-Ansatz.
Zum Thema Brushes und statische Ressourcen:
StaticResources haben jetzt nicht unbedingt etwas mit dem Brush zu tun. Grundsätzlich stehen hier zwei Arten von Resourcen-Zugriffen zur Verfügung: Static und Dynamic. Static bedeutet, dass die Ressource beim ersten Zugriff ausgewertet wird. Mittels Dynamic wird definiert, dass sich die Resource zur Laufzeit ändern kann und daher WPF doch überprüfen möge, ob denn das der Fall ist um bei einer Änderung die Ressource neu auszuwerten. Dynamic ist daher weniger performant als Static bietet jedoch eben den Vorteil der möglichen Ressourcen-Änderung.
Zwei Brushes führen sicherlich nicht zum Performance-Desaster.