2009-04-01 8 views
62

Mam kilka aplikacji WPF i chcę, aby wszystkie moje style były we wspólnym zestawie zamiast deklarowania ich w każdej aplikacji osobno.Załaduj style WPF lub inne zasoby statyczne z zewnętrznego pliku lub zestawu

Szukam sposobu, więc nie muszę zmieniać wszystkich moich Style="{StaticResource BlahBlah}" w istniejących aplikacjach; Chcę tylko dodać odniesienie do tego zestawu stylów i usunąć go z bieżącej aplikacji, więc jest on pobierany ze złożenia.

Czy jest jakiś sposób?

Odpowiedz

108

Odwoływanie zewnętrznego ResourceDictionary (XAML pliku):

<Application.Resources> 
    <ResourceDictionary Source="MyResources.xaml" /> 
</Application.Resources> 

Odwoływanie zewnętrznego ResourceDictionary (DLL):

<Application.Resources> 
    <ResourceDictionary Source="/MyExternalAssembly;component/MyResources.xaml" /> 
</Application.Resources> 
+0

Ale proszę powiedzieć, w jaki sposób możemy zastąpić styl, który istnieje w Zasobów plik xaml w innym zestawie? Na przykład: Styl, który ma ustawioną właściwość Foreground i jest to styl domyślny (który nie ma żadnego x: Key). Potem chcę zmienić właściwość Background. Więc użyłem BaseOn, ale to nie działa. :( –

+3

@amkh, kiedy ten styl zostanie zaimportowany do zakresu, możesz go redeclare i przesłonić, tworząc nowy styl na wysokim poziomie ustawienia ustawienia 'BasedOn' na' {StaticResource {x: Type TextBox}} '(zastępując TextBox – Shimmy

+0

Wielkie dzięki. Mój błąd polegał na tym, że tworzyłem styl w niewłaściwym miejscu, gdy używałem programu BasedOn. –