В WPF как указать путь к файлу, вложенному в каталог с помощью XAML?

Я пытаюсь это сделать...

<Image x:Name="imgGroupImage" Source="Imagesunlock.png" Margin="0,0,5,0" />

но я получаю эту ошибку...

не удается преобразовать строку ' Imagesunlock.ПНГ в атрибут 'Source' для объекта типа 'системы.Окна.Сми.ImageSource'. Не удается найти формы/изображения/разблокировка ресурса.png'. Ошибка в системе объекта.Окна.Hierarchicaldatatemplate 'в файле разметки' предохранитель; компонент / формы / главное окно.xaml ' строка 273 позиция 51.

Как вы можете видеть, моя форма, которая включает этот XAML в папке с именем формы. Мои изображения находятся в папке с именем Images. Как сопоставить формы с изображениями?

пробовал Source="..Imagesunlock.png" который не работает в WPF.

помочь?

4 ответов


попробуйте косые черты, а не обратные косые черты, и используйте абсолютный путь, ведущий с косой чертой:

Source="/Images/unlock.png"

это обычно работает для меня.

в противном случае, взгляните на Пакет URIs.


  1. добавьте изображение в проект в VS
  2. щелкните правой кнопкой мыши на этом изображении "разблокировать".формат PNG
  3. заходим в контекстное меню /Свойства
  4. изменить действие сборки на Resource

вот и все :-)


вы пытались установить источник в растровое изображение?

<Image x:Name="imgGroupImage" Margin="0,0,5,0"  >
   <Image.Source>
      <BitmapImage UriSource="Images/unlock.png" />
   </Image.Source>
</Image>

Я считаю, что тип по умолчанию Uri на UriSource является родственником Uri, который работает с базовым классом приложения. Вы можете найти, что вы можете настроить BitmapSource немного проще, чем пытаться найти точный способ ввода пути к файлу в


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

<Image Source="pack://application:,,,/Resources/image.png"/>

здесь ресурсы - это имя каталога, из которого вы хотите использовать ресурсы и изображения.png-это имя изображения для отображения. Ответ найден благодаря @matt-hamilton и @brian-hinchey и их упоминанию Pack URI.
Отлично работает с собственными конвертерами. Вам просто нужно вернуть схему сопоставления строк выше.