В настоящее время я работаю над наличием словарей стилей и шаблонов, которые я могу динамически применять к своему приложению. До этого динамического поведения «новый разыскиваемый» у меня было несколько словарей ресурсов, по одному для каждого стилизованного элемента управления, которые я слил в App.xaml:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ColorsDictionary.xaml"/>
<ResourceDictionary Source="ControlsTemplatesDictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Теперь я бы хотел, чтобы мое приложение было стилизовано, поэтому я решил объединить все мои предыдущие ресурсы в новый, называемый "MyFirstTemplates", и добавить только этот словарь в App.xaml.
Новый словарь "MyFirstTemplates.xaml":
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">"
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ColorsDictionary.xaml"/>
<ResourceDictionary Source="ControlsTemplatesDictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Новое приложение. Xaml:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MyFirstTemplates.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="{x:Type Window}"/>
</ResourceDictionary>
</Application.Resources>
Примечание. Стиль по умолчанию для окна - исправить ошибку в WPF 4, см. Добавление объединенного словаря в объединенный словарь
Теперь, когда я сделал это изменение, я больше не могу использовать цветовой ресурс из "ColorsDictionary.xaml" в качестве StaticResource в "ControlsTemplateDictionary.xaml". Если я вернусь к объединению этих файлов в app.xaml, все будет работать. Чтобы это работало, я должен изменить эти StaticResource на DynamicResource . У вас есть идеи, почему это больше не работает?
Спасибо: -)