Style Vererbung basiert auf verschiedenen XAML
Wie Sie angeben, BasedOn tag in einem Stil, ein Stil definiert, der in einer anderen Datei.
Beispiel,
Dictionary1.xaml definiert
<Style x:Key="basicStyle" TargetType="TextBlock" >
<Setter Property="FontSize" Value="24"></Setter>
<Setter Property="Foreground" Value="DarkGray"></Setter>
<Setter Property="FontWeight" Value="Bold"></Setter>
</Style>
In Dictionary2.xaml-ich brauche so etwas wie
<Style x:Key="headerStyle" TargetType="TextBlock" >
<Setter Property="FontSize" Value="46"></Setter>
<Setter Property="Foreground" Value="DarkGray"></Setter>
<Setter Property="FontWeight" Value="Bold"></Setter>
</Style>
Wie Sie diese erreichen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfach:
In
Dictionary2.xaml
definieren MergedDictionaries (gleich nach der EröffnungResourceDictionary
tag):Dann
Dieser das Problem lösen wird, aber wie alle einfachen Lösungen, es gibt einen Haken: jedes mal, wenn Sie Wörterbücher Zusammenführen Sie effektiv erstellen Sie eine Kopie der zusammengeführten Wörterbuch. Und es ist rekursiv - wenn Sie Dict3.xaml und Dict4.xaml-Code, der sowohl laden Dictionary2.xaml, Sie haben drei Instanzen Dictionary1.xaml erstellt. Mit einer komplexen Abhängigkeitsstruktur können Sie bekommen zu einem point daß Sie haben 19,000+ dictionary-Objekte im Speicher der Anwendung starten und den Speicherbedarf geht von 180 MB auf 1200MB (TrueStory™ 🙁 ).
Die Lösung ist ein SharedResourceDictionary. Die Umsetzung in das tutorial sollte gesehen werden, als Ausgangspunkt, und wird wahrscheinlich brauchen ein gewisses Maß an Feintuning - je nach Einsatz-Szenario. Google "wpf SharedResourceDictionary" für einige Fallstricke und Lösungen.