2010-09-10 3 views
2

У меня есть 3 сборки:ресурсов ссылки в пользовательский элемент управления не отображается, когда пользовательский элемент управления содержит ссылку на другую сборку

Номер 1- ResourceAssembly, который содержит вложенную папку Изображения с 1 изображением в нем (построить действие = ресурс). Внутри этой подпапки есть ResourceDictionary со строкой, установленной для ресурса. Словарь ресурс содержит включено следующее:

<BitmapImage x:Key="BluePlus_48x48_72" UriSource="112_Plus_Blue_48x48_72.png"/> 

Номер 2 - контрольный узел МОФ с одним UserControl под названием UserControl1. В пределах ресурсов usercontrol я загружаю словарь ресурсов из сборки 1 и использую изображение в нем.

<ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="pack://application:,,,/ResourcesAssembly;component/Images/ImagesDictionary.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 

<Image Source="{DynamicResource BluePlus_48x48_72}" Height="48" Width="48"/> 

Изображение отображается правильно.

Номер 3 - Основной сборщик приложений. Внутри MainWindow.xaml я ссылаюсь на сборку Project1 и вставляю UserControl1.

xmlns:p1="clr-namespace:Project1;assembly=Project1" 
<p1:UserControl1 Height="60" Width="60"/> 

Однако изображение не отображается. Ошибок времени компиляции и ошибок не возникает в окне вывода во время выполнения. Я не понимаю, почему изображение не появляется. Любая мысль?

Благодарим за помощь!

ответ

1

Я думаю, вам нужно также добавить ссылку на проект «ResourceAssembly» в главном приложении. Или, по крайней мере, иметь «ResourceAssembly.dll» в той же папке, что и исполняемый файл вашего основного приложения.

+0

Он сводился к перемещению сборки ResourceAssembly.dll в каталог приложения, как указано. Благодаря! –

0

Попробуйте дать ссылку на ресурс, как показано ниже.

<ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/YourAssembly.Name;component/Images/ImagesDictionary.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 

<Image Source="{StaticResource BluePlus_48x48_72}" Height="48" Width="48"/> 

Примечание: Кроме того, не забыли/в Source="/.

НТН