Изображение в WPF-кнопке не отображается в режиме Runtime

Все, у меня есть следующее начало небольшому приложению, которое проверяет файлы .resx на согласованность встроенных скобок (так что ошибки времени выполнения несоответствующих строк «… {0}» не происходят). У меня есть следующий XAML для MainWindow.xaml, и моя конкретная проблема связана с изображением, которое должно отображаться на кнопке

             

Изображение имеет «Build Action = Resource», «Copy to output directory = Do not copy» – изображение отображается в дизайнере, но не во время выполнения. Я видел следующие вопросы и читал соответствующие ответы, но никто не решает проблему:

  1. Управляющие изображения WPF не отображаются при использовании приложения

  2. проблема изображения в wpf (изображение не отображается)

  3. Фоновый образ кнопки, не отображающийся в WPF

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

Измените действие сборки на «Ресурс». Также неправильный URL-адрес вашего пакета. Либо используйте:

 Source="pack://application:,,,/Resource/UserCost2013Open16.png" 

или просто

 Source="/Resource/UserCost2013Open16.png" 

Есть 2 решения:

1: Измените настройки изображения:

 Build Action = Content Copy to output directory = Copy if newer Source="pack://siteoforigin:,,,/Resources/UserCost2013Open16.png" 

2: При использовании приложения вместо siteoforigin в исходном пути вам необходимо:

a) Изображение будет в SubFolder под названием «Ресурсы», а файл .exe будет небольшим

 Source="pack://application:,,,/Resources/UserCost2013Open16.png" Build Action = Content Copy to output directory = Copy if newer 

b) Изображение будет включено в .exe, и никакая подпапка с файлом изображения не будет существовать

 Source="pack://application:,,,/Resources/UserCost2013Open16.png" Build Action = Resource Copy to output directory = Copy if newer 

В моем случае у меня были изображения в отдельном проекте с именем Common а изображения находились под папкой « Resources в этом проекте. В моем другом проекте я добавил ссылку на Common и установил источник изображений следующим образом:

  

На изображениях установлено значение « Build Action для « Resource и « Copy to Output Directory чтобы « Do not copy . Однако по какой-то странной причине он не работал, пока я не удалил каждый файл сборки в своем решении и не сделал « Clean Solution и Build Solution . Не уверен, почему, но все это началось во время выполнения, как только я перестроил все. Я все еще не могу понять, почему он работал в Design Time.

Предполагая, что у вас есть

  • настройте Build Action на Resource

  • правильно установить этот путь с помощью URI-PACK-FORMAT

В моем случае он все еще не показывался.

Clean & Rebuild НЕ просто построить исправил его для меня!

Вы должны добавить что-нибудь в Solution Explorer из Visual Studio. Вместо того, чтобы просто копировать изображение в папку в Проводнике Windows, нажмите «Правая кнопка мыши» в любой папке в обозревателе решений, перейдите в « Добавить»> «Существующий элемент …» и выберите путь к добавляемому ресурсу.

Перейдите к своему изображению в папке ресурсов, щелкните правой кнопкой мыши по изображению, перейдите к свойствам. Щелкните свойство BuildAction и установите для него значение Ресурс из none. Это сработает.

Я определил свое изображение следующим образом:

  

Изображение отображается в дизайнере Visual Studio, но при запуске приложения изображение не отображается! Это сделало меня сумасшедшим! Я пробовал все Build Action s с помощью clean / build, не повезло.

В моем случае проблема связана с тем, что элемент управления (который использует изображение ) и само приложение находятся в разных проектах. Ресурсы / Картинки находятся в проекте Controls . В результате приложение попыталось найти icon.png в своей собственной папке Debug, но на самом деле оно находится в папке Debug Controls .

Поэтому для меня работают два решения:

1) поместите ресурсы / изображения в проект приложения (не так хорошо, когда есть несколько проектов, которые используют элементы управления из проекта Controls , но это работает)

2) явно указать название проекта Controls внутри Image :

  

Source = “file: /// D: /100×100.jpg” /> работает для меня.

  • Добавить массив кнопок в GridView в приложении для Android
  • Передача данных между формами WPF
  • Использование JavaFX 2.2 Мнемоника (и ускорители)
  • Как обновить или показать сразу в datagridview после вставки?
  • Дважды нажмите кнопку «Назад», чтобы выйти из операции
  • Как изменить цвет фона кнопки WinAPI C ++
  • Переопределить домашнюю и обратную кнопку - это случай, когда логическое значение true
  • Как программно добавлять кнопки в макет по одному в нескольких строках?
  • Кнопка переключения текста в jquery
  • Один OnClickHandler для нескольких кнопок
  • Прикрепите параметр к действию button.addTarget в Swift
  • Давайте будем гением компьютера.