URI ресурса в WPF UserControl, который размещается в приложении Windows Forms - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть WPF UserControl, который использует некоторые растровые ресурсы PNG как часть своего пользовательского интерфейса.В настоящее время на эти файлы ссылаются Действие построения: содержимое и Копировать в выходной каталог: не копировать .Элементы этого UserControl используют следующий URI для доступа к ресурсу: pack://application:,,,Resources/ui/Cross.png, который отлично работает в конструкторе.

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

Я также попытался изменить URI следующим образом: pack://application:,,,Assembly.Name;component/Resources/ui/Cross.png

Я также попытался прочитать this без помощи.

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

1 Ответ

0 голосов
/ 21 ноября 2018

Действие построения: содержимое и копия в выходной каталог: не копировать

Эта комбинация не работает.Content требует, чтобы файл был скопирован.

Однако вы должны использовать Build Action Resource.И ваш URI пакета пропускает косую черту после ,,,.

Это должно быть

pack://application:,,,/AssemblyName;component/Resources/ui/Cross.png

при условии, что файл изображения является частью вашего проекта Visual Studio, расположенного в подпапке с именем ui в папке проекта с именем Resources.

Подробнее см. URI пакета файлов ресурсов .

...