URI ресурса в WPF UserControl, который размещается в приложении Windows Forms
У меня есть WPF UserControl, который использует некоторые растровые ресурсы PNG как часть своего пользовательского интерфейса. В настоящее время на эти файлы ссылаются Build Action: Content и Copy to Output Directory: не копировать. Элементы этого UserControl используют следующий URI для доступа к ресурсу: pack://application:,,,Resources/ui/Cross.png
который отлично работает в дизайнере.
Пользовательский элемент управления затем используется в приложении Windows Forms через элемент управления ElementHost, после чего все ссылки на изображения перестают работать. UserControl находится в своей собственной сборке, и приложение Windows Forms ссылается на эту сборку.
Я также попытался изменить URI на это: pack://application:,,,Assembly.Name;component/Resources/ui/Cross.png
Я также попытался прочитать это, чтобы помочь.
Единственный оставленный мной вариант - включить код для ручной установки ImageSource всех элементов Image в пользовательском элементе управления, что потребует много работы. Я чувствую, что должен быть способ решить это лучше.
1 ответ
Действие построения: содержимое и копия в выходной каталог: не копировать
Эта комбинация не работает. Content
требует, чтобы файл был скопирован.
Тем не менее, вы должны использовать Build Action Resource
, И ваш Pack URI пропускает косую черту после ,,,
,
Так должно быть
pack://application:,,,/AssemblyName;component/Resources/ui/Cross.png
при условии, что файл изображения является частью вашего проекта Visual Studio, расположенного в подпапке с именем ui
в папке проекта с именем Resources
,
Посмотрите URIs Файла пакета Ресурса для деталей.