Итак, у меня есть приложение и библиотека классов.
Библиотека классов имеет
UserControls/Test.xaml
Images/TestImage.png
Тестовое изображение помечено как «Содержимое», а «Копировать в выходной каталог» установлено в значение «ложь», поскольку я хочу, чтобы все мои изображения сохранялись в классе dll.
Test.xaml выглядит примерно так ...
<UserControl x:Class="TestLib.UserControls.Test"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
>
<Image Source="/TestLib;component/Images/TestImage.png"/>
</UserControl>
Конструктор работает нормально, но когда я пытаюсь создать экземпляр UserControl / Test.xaml в моем приложении, он выдает следующее исключение:
System.IO.IOException occurred
Message=Cannot locate resource 'images/TestImage.png'.
Source=PresentationFramework
StackTrace:
at MS.Internal.AppModel.ResourcePart.GetStreamCore(FileMode mode, FileAccess access)
InnerException:
Я попытался изменить тип ресурса на «Ресурс» и «Встроенный ресурс», но ни один из них не имеет значения. Я также попытался использовать строку полного пакета
"pack://application,,,/TestLib;component/Images/TestImage.png"
но выдает точно такое же исключение, даже указав тот же 'images / TestImage.png'.
Редактировать: Я забыл упомянуть, что Images / TestImage.png не "включен", он "включен как ссылка". Видимо, это проблема из-за ошибки компилятора: Связанные файлы в структуре папок