Использование изображения в xaml из Resources.resx - PullRequest
2 голосов
/ 27 мая 2020

В моей программе есть файл ресурсов с именем «test» с изображением «test.png». Я хочу использовать его в файле XAML. Но когда программа запускается, я не вижу изображения. Мой код:

xmlns:r="clr-namespace:ProjectB.Properties"
...
<Image Source="{Binding Source={x:Static r:Resources.test}}" />

Действие сборки изображения test.png установлено на Resource

EDIT:

Я хотел использовать изображение в файле ресурсов чтобы иметь возможность использовать разные изображения в разных глобализациях (так же, как строки в файле ресурсов). Я не знаю, что это возможно, но я закончил добавлением изображений в обычную папку в моем проекте, как предлагают ответы ниже, в файл ресурсов я добавил пути к изображению, и файл XAML выглядит следующим образом:

<Image
Source="{Binding Source={x:Static r:Resources.test},
                 Converter={StaticResource StrToImgConv}}" />

Ответы [ 2 ]

2 голосов
/ 27 мая 2020

Вам не нужно использовать Resources.resx, просто добавьте изображение test.png в свой проект, например, в папку «Ресурсы» и установите действие сборки на Embedded Resource, затем вы можете использовать его в коде xaml, как показано ниже. .

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

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

<Image Source="pack://application:,,,/Resources/Images/test.png" />
1 голос
/ 27 мая 2020

Файл resources.resx совершенно не нужен, так как это тип файла, используемый для WinForms, а не WPF.

  1. Удалите файл ресурсов (или просто не ссылайтесь на него как на источник)
  2. Сохраните файл test.png и сохраните его действие сборки как ресурс
  3. Измените свой xaml следующим образом:
xmlns:r="clr-namespace:ProjectB.Properties"
...
<Image Source="Resources/test.png" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...