У меня есть библиотека классов Silverlight, которая называется MyClassLibrary.
В нем у меня есть пользовательский элемент управления, который называется MyControl.
Внутри элемента управления я определяю пользовательские ресурсы:
<UserControl.Resources>
<Style x:Key="ComboBoxStyle" TargetType="ComboBox">
(lots of xaml)
</Style>
</UserControl.Resources>
Элемент управления использует такой стиль:
<ComboBox Style="{ StaticResource ComboBoxStyle }"></ComboBox>
Это все работает отлично, ComboBox предлагает правильный стиль, поэтому я знаю, что стиль написан правильно.
Что я действительно хочу, так это чтобы стиль был в словаре ресурсов, чтобы он мог использоваться несколькими различными элементами управления в этой сборке. Поэтому я создаю в ЖЕ сборке словарь ресурсов. Я называю это ResourceDictionary.xaml.
Я переместил определение стиля из своего пользовательского элемента управления в словарь ресурсов.
Итак, словарь ресурсов выглядит так:
<ResourceDictionary
xmlns="etc" >
<Style x:Key="ComboBoxStyle" TargetType="ComboBox">
(lots of xaml)
</Style>
</ResourceDictionary>
Пользовательские ресурсы элемента управления теперь выглядят так:
<UserControl.Resources>
<ResourceDictionary
Source="/MyClassLibrary;component/ResourceDictionary.xaml" x:Name="resDict"/>
</UserControl.Resources>
И элемент управления по-прежнему использует стиль точно так же, как и раньше.
Теперь я знаю, что он находит файл ResourceDictionary.xaml, потому что я попытался изменить атрибут «Source» на NonExistentFile.xaml, и он пожаловался, что не может найти файл. Он не подает жалобу с ResourceDictionary.xaml, поэтому я предполагаю, что он его нашел.
Однако, когда я запускаю приложение, я получаю сообщение об ошибке «Не удается найти ресурс с именем / ключом ComboBoxStyle».
Что я делаю не так? Это кажется таким простым и не работает.
Заранее благодарим за любую помощь, которую вы можете оказать мне.