Как установить для свойства WPF BitmapImage UriSource относительный путь? - PullRequest
5 голосов
/ 05 июля 2010

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

Мой XAML:

<Image Width="50" Name="MemberImage" HorizontalAlignment="Left">
    <Image.Source>
        <BitmapImage DecodePixelWidth="50" UriSource="questionmark.jpg" />
    </Image.Source>
</Image>

проект с действием «Создать ресурс» и «Копировать в выходной каталог», установленным на «Всегда копировать».Я получаю сообщение об ошибке: «Файл [имя файла] не является частью проекта или его свойство« Build Action »не установлено в« Resource »».Это работает, когда я использую абсолютный путь для UriSource, но это, очевидно, не подойдет.

Как мне определить свой UriSource в XAML?

Ответы [ 3 ]

9 голосов
/ 10 июля 2013

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

Правильный способ указать:

<BitmapImage 
    x:Key  = "Logo"
 UriSource = "pack://application:,,,/ApplicationNamespace;component/Images/App/image.png"  
/>

Просто замените

ApplicationNamespace с пространством имен вашего приложения

и

Images/App/image.png с вашим путем изображения в проекте

1 голос
/ 06 мая 2015

Файлы изображений со следующими параметрами в свойствах
Действие построения = Содержимое
Копировать в каталог вывода = Копировать, если новее

<BitmapImage x:Key="QuestionMark" UriSource="pack://siteoforigin:,,,/questionmark.png"/>


Ссылка:
Xaml - Bitmap UriSource - абсолютный путь работает, относительный путь - нет, почему?

0 голосов
/ 06 июля 2010

Я не могу воспроизвести проблему на моем компьютере:

  • Я добавляю jpg, выбрав Добавить существующий элемент в меню Проект
  • Затем я устанавливаю его Build Actio на Resource and CopyВыходной каталог всегда.
  • Мой XAML такой же.

Здесь отлично работает, даже после перемещения .exe и переименования jpg.Что-то еще должно быть кусает тебя!

...