В приложении WPF я определил стили элементов управления по умолчанию в отдельных словарях ресурсов (например, «ButtonStyle.xaml») и добавил их как объединенные словари в словарь ресурсов с именем «ResDictionary.xaml».
Если я ссылаюсь на этот ResDictionary.xaml как объединенный словарь в моем App.xaml, стили по умолчанию не применяются. Однако, если я ссылаюсь на «ButtonStyle.xaml», он работает правильно.
Если я перекомпилирую тот же код в .NET 3.5 или 3.0, он распознает и применяет стили по умолчанию, указанные в «App.xaml» через «ResDictionary.xaml», но не в .NET 4.0.
Во время выполнения, если я проверяю словарь Application.Current.Resources, существуют стили по умолчанию, но они не применяются, только если я явно указываю свойство Style в элементе управления Button.
Существуют ли решения для ссылки на словарь ресурсов (содержащие стили по умолчанию) таким образом в .NET 4.0?
App.xaml:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles/ResDictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
ResDictionary.xaml:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Default/ButtonStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
ButtonStyle.xaml:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="Button">
<Setter Property="Background" Value="Yellow"/>
</Style>
</ResourceDictionary>