So habe ich ein paar DataTemplate
s in einer Benutzersteuerungsbibliothek. Diese DataTemplate
s befinden sich im Ressourcenverzeichnis themes\generic.xaml
und können problemlos im Bibliotheksprojekt verwendet werden.Zugreifen auf Ressourcen, die in der Steuerelemente-Bibliothek definiert sind
Dieses Bibliotheksprojekt wird vom Haupt-Desktopanwendungsprojekt verwendet. Zur Laufzeit kann Application.Current.FindResource()
jedoch keine der in der Bibliothek definierten Ressourcen finden. (Ich dachte, es würde!)
So ging ich weiter und fusionierte diese Ressource Wörterbuch in Anwendungsressourcenverzeichnis:
<Application x:Class="Application">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/ControlsLibraryProj;component/themes/generic.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
und voila! es kann nun auf diese DataTemplate
s zugreifen. Meine Frage ist, habe ich es richtig gemacht? Muss ich ein in einem referenzierten Projekt definiertes Wörterbuch zusammenführen? Irgendwie habe ich den Eindruck, dass Application.Current.FindResource()
Zugriff auf alle Ressourcen hätte, die in allen geladenen Modulen (exe und dll) definiert sind. Ist das richtig und habe ich sie unnötigerweise zweimal durch Zusammenführen geladen?
Ist die Benutzersteuerungsbibliothek eine dritte Baugruppe oder eine eigene Baugruppe? –
@IlVic: Es ist meine eigene Bibliothek und als ein Projekt in der Lösung verfügbar. – dotNET