WPF Image Внешний ресурс - PullRequest
1 голос
/ 09 июня 2009

У меня есть библиотека пользовательских элементов управления со словарем ресурсов, который ссылается на изображение в той же библиотеке пользовательских элементов управления.

Затем у меня есть приложение WPF со ссылкой на библиотеку пользовательских элементов управления, которая содержит словарь ресурсов со стилем, который использует изображение.

Когда я пытаюсь использовать стиль из внешнего ресурса, я получаю сообщение об ошибке, в котором говорится, что не удается найти изображение, на которое ссылается стиль.

У меня есть пример решения, которое я могу отправить любому, кто нуждается в нем, но я надеюсь, что есть кто-то, кто просто знает ответ ...

Спасибо, Аарон

Ответы [ 2 ]

2 голосов
/ 10 июня 2009

Хорошо, это то, что я нашел ... Если у вас есть внешний словарь ресурсов со стилем:

<Style x:Key="Arrow" TargetType="{x:Type Button}">
<Setter Property="Template">
  <Setter.Value>
    <ControlTemplate TargetType="{x:Type Button}">
      <StackPanel Orientation="Horizontal" Width="Auto" Height="20">
        <Image Source="/Images/RightArrow.png" />
      </StackPanel>
    </ControlTemplate>
  </Setter.Value>
</Setter>

и изображение находится в папке «Изображения» внешней сборки. Приведенная выше ссылка на источник прекрасно работает, когда вы находитесь в среде разработки, но после ссылки на сборку относительный путь к RightArrow.png теряется для ссылающегося WPF Приложение. Таким образом, ответ заключается в следующем:

        <Image Source="/Skin;component/Images/RightArrow.png" />

Обратите внимание на URI выбора вместо относительного пути. Это гарантирует, что приложение-ссылка знает, где на самом деле найти изображение.

0 голосов
/ 10 июня 2009

Когда вы добавляете изображение в ваш проект в VS, оно имеет свойство «Копировать в выходной каталог». Установите его значение «Всегда копировать» или «Копировать, если новее». Затем восстановите. Держу пари, что это исправит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...