У меня есть кисть, которая является частью ResourceDictionary
, которая объединена с Application.Resources
.
Но по какой-то причине он не разрешается во время выполнения, когда к одному из элементов управления применяется стиль. Тем не менее, если я вызываю Application.Current.FindResource ("BrushName") из непосредственного окна во время возникновения исключения, ресурс найден.
Я что-то упустил? Разве WPF не должен пытаться искать ресурс в ресурсах приложения?
UPDATE
Приложение довольно большое, поэтому я не могу опубликовать весь реальный код, но вот как ресурсы объединяются и используются:
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}
...
UPDATE
Кажется, это происходит с меню и элементами управления, которые создаются в коде. Может ли это быть связано с тем, что эти элементы управления и меню не являются частями визуального дерева какого-либо окна?