Възможно ли е да добавите един ресурсен речник в друг? Благодаря за всяка помощ.
Отговори:
19 за отговор № 1В Dictionary2.xaml дефинирайте MergedDictionaries (веднага след отварящия маркер ResourceDictionary):
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Path/to/Dictionary1.xaml" />
</ResourceDictionary.MergedDictionaries>
има улов: всеки път, когато обединявате речници, ефективно създавате копие на сливания речник. И това е рекурсивно - ако имате Dict3.xaml и Dict4.xaml, че и двете зареждат Dictionary2.xaml, ще имате три копия на Dictionary1.xaml, създадени
Решението е a SharedResourceDictionary, Изпълнението в урока трябва да бъдесчитано като отправна точка и вероятно ще се нуждае от известно ниво на променяне - в зависимост от сценария на използване. Google "wpf SharedResourceDictionary" за някои придобивания и решения.
От отговора до този въпрос от XAMeLi
4 за отговор № 2
Фрагмент, направо от проекта за скиц поток, върху който работя, показва как да се слеят ресурсни речници в xaml:
<Application.Resources>
<!-- Resources scoped at the Application level should be defined here. -->
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Microsoft.Expression.Prototyping.SketchControls;component/ScrollViewerStyles.xaml"/>
<ResourceDictionary Source="/[ProjectABC];component/[fileXYZ].xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Това показва обединяването на два допълнителни ресурсни речника в друг ресурсен речник.
(Имайте предвид, че поръчката може да стане важна, ако сте поставили по подразбиране стилове, определени на повече от едно място, тъй като те ще се отменят)
1 за отговор № 3
Нещо като:
ResourceDictionary resources = new ResourceDictionary();
resources.Source = new Uri("/MyModule;component/MyModule.xaml",
UriKind.RelativeOrAbsolute);
Application.Current.Resources.MergedDictionaries.Add(resources);
Може да бъде това, което търсите. Използваме кода като този в модулите Prism.
0 за отговор № 4
Без повече контекст е трудно да ви дам конкретен отговор. Ето някои евентуално подходящи ресурси за сливане на ресурсни речници:
http://msdn.microsoft.com/en-us/library/aa350178.aspx