ResourceDictionary
にマージされた の一部であるブラシがありApplication.Resources
ます。
しかし、何らかの理由で、スタイルがコントロールの 1 つに適用されているときに実行時に解決されません。ただし、例外がスローされた時点でイミディエイト ウィンドウから Application.Current.FindResource("BrushName") を呼び出すと、リソースが見つかります。
何か不足していますか?WPF は、アプリのリソースでリソースを検索しようとするはずではありませんか?
更新 アプリケーションは非常に大きいため、実際のコードをすべて投稿することはできませんが、リソースがマージされて使用される方法は次のとおりです。
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 ...>
そして、一部のコントロールは、次のようにリソースを使用してスタイルを使用する場合があります。
...
Style={StaticResource SomeStyle}
...
アップデート
コードで作成されたメニューとコントロールで発生するようです。どのウィンドウのビジュアル ツリーにも含まれていないコントロールやメニューに関連している可能性はありますか?