2011-01-24 13 views
6

W aplikacji Silverlight możemy definiować zasoby w App.xaml i mieć do nich dostęp z dowolnego dokumentu XAML, bez konieczności jednoznacznego scalania tych zasobów.Globalne zasoby w bibliotece klas

Czy istnieje odpowiednik rozwiązania dla biblioteki klas? Utworzono oddzielny słownik zasobów w bibliotece klas, ale muszę go scalić w następujący sposób, zanim będę mógł z niego korzystać.

<UserControl.Resources> 
<ResourceDictionary> 
    <ResourceDictionary.MergedDictionaries> 
    <ResourceDictionary Source="MyResources.xaml" /> 
    </ResourceDictionary.MergedDictionaries> 
</ResourceDictionary> 
</UserControl.Resources> 

Czy można tego uniknąć? Robienie tego w każdym dokumencie XAML jest dość uciążliwe dla globalnie używanych zasobów.

Odpowiedz

1

Już miałem zadać to samo pytanie. Niestety, to, co opisałeś, jest bardzo zbliżone do tego, co udało mi się wymyślić. Teoretycznie wygląda na to, że powinieneś móc umieścić je w pliku \ "generalicx.xl" biblioteki, ale nie byłem w stanie wykonać tej pracy - prawdopodobnie robię coś zepsutego. Najlepszy Byłem w stanie zrobić, to po prostu nieco krótszy wariant, co robisz, a mianowicie, aby opuścić składnię MergedDictionaries:

<UserControl.Resources> 
    <commonui:CommonStringsPublic x:Key="commonStrings" /> 
    <ResourceDictionary Source="/Alanta.Client.UI.Common;component/CommonResources.xaml" x:Key="commonResources" /> 
</UserControl.Resources> 

Chciałbym aby ktoś mi punkt lepszy rozwiązanie :-).

+0

Sądzę, że to tak dobre, jak się da ... Dzięki! W międzyczasie utworzyłem również szablon wizualnego studia do tworzenia kontrolek użytkownika, które dodaje to, a także inny wspólny kod (np. Dyrektywy xmlns itp.). –

Powiązane problemy