Mam pliki słownika zasobów (MenuTemplate.xaml, ButtonTemplate.xaml itp.), Których chcę używać w wielu różnych aplikacjach. Mógłbym dodać je do zestawów aplikacji, ale lepiej jest, jeśli skompiluję te zasoby w jednym zestawie, a moje aplikacje odniosą się do niego, prawda?
Po zbudowaniu zestawu zasobów, jak mogę odwoływać się do niego w pliku App.xaml moich aplikacji? Obecnie używam ResourceDictionary.MergedDictionaries do scalania poszczególnych plików słowników. Jeśli mam je w zestawie, jak mogę odwoływać się do nich w Xaml?
.net
wpf
xaml
controltemplate
resourcedictionary
Gus Cavalcanti
źródło
źródło
Odpowiedzi:
Sprawdź składnię URI paczki . Chcesz coś takiego:
źródło
AppDomain.AssemblyResolve
aby pomóc mu znaleźć zestaw.Przykład, aby odpowiedź była 15 sekundowa -
Załóżmy, że masz plik „styles.xaml” w bibliotece WPF o nazwie „common” i chcesz go użyć z głównego projektu aplikacji:
Twoje zdrowie
źródło
Pracuję z .NET 4.5 i nie mogłem tego uruchomić ... Korzystałem z biblioteki niestandardowej kontroli WPF. To mi w końcu zadziałało ...
źródło: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/11a42336-8d87-4656-91a3-275413d3cc19
źródło
Tylko biblioteka zasobów jest opcją dla Ciebie. Nie jest to jednak konieczne, chyba że chcesz zmodyfikować zasoby bez ponownej kompilacji aplikacji. Tylko jeden wspólny plik ResourceDictionary jest również opcją. To zależy od tego, jak często zmieniasz zasoby itp.
MyAssembly - po prostu nazwa zestawu bez rozszerzenia
FolderStructureInAssembly - Jeśli zasoby są w folderze, określ strukturę folderów
Kiedy to robisz, lepiej też wiedzieć o siteOfOrigin .
źródło
Dla UWP:
źródło
Korzystanie z XAML:
Jeśli znasz inną
assembly
strukturę i potrzebujesz koduresources
in c # , użyj poniższego kodu:Wynik: jeśli chcemy wykorzystać
ResourceDictionary
RD1.xaml
ProjectWpfControlLibrary1
doStackOverflowApp
projektu.Struktura projektów :
Słownik zasobów:
Kod wyjściowy:
PS: wszystkie
ResourceDictionary
pliki powinny miećBuild Action
jako „Resource
” lub „Page
”.Za pomocą C #:
źródło