Was ist der einfachste Weg, Ressourcen zwischen UserControls in einer WPF User Control-Bibliothek zu teilen?

8

Es gibt eine WPF-Benutzersteuerungsbibliothek und zwei (oder mehr) Benutzersteuerelemente. Ich muss den gleichen Stil in beiden Benutzersteuerelementen verwenden. Wie kann ich diesen Stil teilen? Zum Beispiel:

Dies ist der Stil:

%Vor%

Benutzerkontrolle A:

%Vor%

UserControl B:

%Vor%

Wie kann ich diesen Stil zwischen Benutzersteuerelementen in der Bibliothek freigeben, ohne das Ressourcenverzeichnis der Anwendung app.xaml einzubeziehen?

AKTUALISIEREN

Ich kann Themes \ Generic.xaml in meine Bibliothek einfügen und den Stil dort definieren. Aber in diesem Fall muss ich ComponentResourceKey als Schlüssel des Styles verwenden. Recht? Es ist lang und nicht sehr praktisch Ausdruck ...

    
sedovav 20.07.2011, 20:40
quelle

3 Antworten

2

Sie können die freigegebenen Ressourcen in einem separaten ResourceDictionary definieren und sie anschließend mit MergedDictionaries .

    
CodeNaked 20.07.2011, 20:46
quelle
12

Angenommen, Sie haben eine Ressource, die Farben definiert:

%Vor%

Und ein anderer, der einige grundlegende Stile definiert:

%Vor%

Sie können dann Ihre Ressourcen zum Tag Application.Resources von App.xaml hinzufügen, wie hier gezeigt:

%Vor%

Dann können Sie in allen Ihren Benutzersteuerelementen die Stile oder Pinsel als StaticResources verwenden, wie Ihr Beispielcode zeigt.

    
Espen Medbø 21.07.2011 07:41
quelle
1

Ich habe die Lösung gefunden, die auch in der Entwurfszeit funktioniert (zumindest in VS2010):

%Vor%

Diese angefügte Eigenschaft kann auf ein FrameworkElement angewendet werden. Stellen Sie sich vor, dass customLabelStyle im Dictionary.xaml im Edu.Wpf.Example-Projekt definiert ist. So kann dieser Stil auf die nächste Art angewendet werden:

%Vor%     
sedovav 02.08.2011 07:12
quelle