J'ai une brosse qui fait partie d'un ResourceDictionary
qui est fusionné à Application.Resources
.Ressource WPF fusionnée à Application.Resources mais non résolue à l'exécution
Mais pour une raison quelconque, il n'est pas résolu au moment de l'exécution lorsqu'un style est appliqué à l'un des contrôles. Toutefois, si j'appelle Application.Current.FindResource ("BrushName") à partir de la fenêtre Exécution au moment où l'exception est levée, la ressource est trouvée.
Ai-je raté quelque chose? WPF n'est-il pas supposé essayer de rechercher la ressource dans les ressources de l'application?
MISE À JOUR L'application est assez grand, donc je ne peux pas poster tout le code réel mais voici la façon dont les ressources sont fusionnées et utilisées:
Brushes.xaml
<ResourceDictionary ...>
<SolidColorBrush x:Key="BrushName" Color="#12345678" />
</ResourceDictionary>
SomeStyles.xaml
<ResourceDictionary ...>
<Style x:Key="SomeStyle">
<Setter Property="SomeProperty" Value="{StaticResource BrushName}" />
</Style>
</ResourceDictionary>
App.xaml
<Application ...>
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Brushes.xaml" />
<ResourceDictionary Source="SomeStyles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application ...>
Et puis un certain contrôle peut utiliser le style en utilisant la ressource comme ceci:
...
Style={StaticResource SomeStyle}
...
MISE À JOUR
Il semble se passer aux menus et aux contrôles qui sont créés dans le code. Peut-il être lié à ces contrôles et menus ne faisant pas partie de l'arbre visuel d'une fenêtre?
Pourriez-vous publier un code de la façon dont vous fusionnez le dictionnaire? –
J'ai répliqué votre échantillon ici et il construit et fonctionne correctement pour moi, il semble que le problème est ailleurs dans votre code. –
Une chance d'obtenir une réponse à ce sujet? –