Dans une application WPF j'ai défini par défaut de styles de contrôle de séparer les dictionnaires de ressources (par exemple, "ButtonStyle.xaml"), et ajouté comme fusionnés dictionnaires un dictionnaire de ressources nommé "ResDictionary.xaml".
Si je me réfère à ce "ResDictionary.xaml" comme fusionné dictionnaire dans mon Application.xaml, les styles par défaut ne sont pas appliquées. Cependant, si je me réfère à la "ButtonStyle.xaml", il fonctionne correctement.
Si je recompile le même code dans .NET 3.5 ou 3.0, il reconnaît et applique les valeurs par défaut des styles mentionnés dans "App.xaml" par "ResDictionary.xaml", mais pas dans .NET 4.0.
Lors de l'exécution si je vérifier l'Application.Actuel.Ressources dictionnaire, les styles par défaut sont là, mais elles ne sont pas appliquées, que si je spécifier le Style de la propriété explicitement dans le Bouton de contrôle.
Existe-il des solutions pour se référer à un dictionnaire de ressources (contenant les styles par défaut) de cette façon .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>