У меня есть библиотека WPF UserControls и ResourceDictionary, общий для этой библиотеки.
Все пользовательские элементы управления в этой библиотеке отображаются только в пределах одного родительского элемента управления 'shell', который на самом деле является просто контейнером для коллекции небольших элементов управления. Я могу получить доступ к ResourceDictionary из моего элемента управления оболочки, как и ожидалось, когда я добавляю следующий XAML
<Control.Resources>
<ResourceDictionary Source="MyResources.xaml" />
</Control.Resources>
Однако я не могу получить доступ к ResourceDictionary из дочерних элементов управления, которые находятся внутри элемента управления 'shell'.
У меня сложилось впечатление, что WPF должен локально проверять ресурсы, а затем перемещаться вверх, пока не будут найдены соответствующие ресурсы?
Вместо этого я получаю
Cannot find resource named '{BoolInverterConverter}'.
Resource names are case sensitive. Error at
object 'System.Windows.Data.Binding' in markup file...
Очевидно, что я могу (и являюсь) ссылаться на ResourceDictionary в моих дочерних элементах управления; но теперь каждый элемент управления должен ссылаться на этот словарь, и я считал, что в этом нет необходимости.
Есть идеи, я делаю что-то странное или мои ожидания поведения неверны?