В приложении 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>