2010-02-15 4 views

Antwort

11

Eine Möglichkeit, dies zu tun, wäre, eine neue Silverlight-Klassenbibliothek zu erstellen, die Ihr gemeinsames Theme/Style-Assembly wäre, auf das die anderen Silverlight-Projekte verweisen würden. Diese Assembly enthält eine oder mehrere Resource Dictionary XAML-Dateien, die alle Ihre Stile, Pinsel und Vorlagen definieren können. Sie könnten sogar einige kaskadierende Stilhierarchien mit dem BasedOn-Attribut der Style-Klasse einrichten.

Sie könnten dann MergedDictionaries verwenden, um diese Stile entweder auf App.xaml-Ebene oder auf Seitenebene in Ihre Anwendung zusammenzuführen.

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/SharedThemeAssembly;component/MyStyles.xaml"/> 
      ...other ResourceDictionaries to merge in... 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

Sie würden dann wie alle anderen StaticResource auf die gemeinsam genutzten Stile/Pinsel verweisen.

+0

Ich wünschte, ich könnte dies zweimal abstimmen :). – retrodrone

4

Es gibt zwei Optionen, zuerst, da Dan angibt, dass Sie eine Bibliothek erstellen können, die von den anderen Projekten gemeinsam genutzt wird. Wenn die Clients auf mehrere Ihrer Projekte zugreifen und Ihre Projekte das Zwischenspeichern von Anwendungsbibliotheken verwenden, reduzieren Sie die Download-Gesamtgröße.

Der andere Ansatz besteht darin, ein Ressourcenwörterbuch in einem Projekt zu erstellen und dann die gleiche Datei den anderen Projekten hinzuzufügen. Beachten Sie, dass im Dialogfeld Vorhandenes Element hinzufügen die Schaltfläche Hinzufügen ein kleines Dropdown-Bild enthält, ziehen Sie es nach unten und wählen Sie dann "Als Verknüpfung hinzufügen".

Dies lässt das Dictionary als eine einfache Xaml-Datei. Ein Vorteil, den ich sehen kann, besteht darin, die Wörterbuchdatei tatsächlich aus dem Xap zu entfernen und sie einfach in den clientBin-Ordner (oder in den Ordner, in den der Xap eingefügt wird) zu platzieren. Dieser Ansatz ermöglicht es allen Xaps, das einzelne Wörterbuch gemeinsam zu nutzen (auf die gleiche Weise, wie es der erste Ansatz tut), erlaubt aber, dass der Xaml ohne unordentliche Neuerstellungen optimiert werden kann.

+0

http://stackoverflow.com/questions/9215906/cant-find-my-styles-in-silverlight-5/9216046#9216046. Kannst du mir dabei helfen? – Vinicius

Verwandte Themen