Я столкнулся с подобной проблемой.Первоначально я использовал следующий формат (в рамках проекта библиотеки классов).
<Image Source="pack://siteoforigin:,,,/Images/Toolbars/Legend.png"/>
Однако при очистке / сборке или перестройке решения или перезапуске Visual Studio изображение кнопки исчезнет, даже еслиЯ хотел бы видеть их на XAML-конструкторе.
Я нашел странное решение, но оно сработало для меня.С помощью этого решения изображения всегда остаются в такте во время выполнения и на XAML во время разработки, -После того, как решение перестраивается. -После очистки и сборки решения. -После закрытия и перезапуска Visual Studio.
Это решение требуетиметь 2 папки (я назвал «Ресурсы») с одинаковыми именами изображений, как в основном приложении, так и в проекте библиотеки классов.В рамках проекта
<Image Source="pack://application:,,,/Resources/Legend.png"/>
Для изображений установите BuildAction = Resource & Copy to OutputDirectory = Не копировать в обоих местах.
Если я использую только папку ресурсов в основном приложении, онавсе еще работает, но на этот раз анализатор времени разработки XAML не может видеть изображение.Вот почему я продублировал ту же папку в библиотеке классов (где находится XAML UserControl).
Причиной этого усложнения может быть внутренняя работа парсера XAML.Часть времени разработки всегда смотрит на местоположение папки в проекте, в котором находится UserControl, а часть времени выполнения требует, чтобы изображения были в основном приложении для правильной работы.
Я не утверждаю, чтоэто правильное или разумное решение, но в моем случае это сработало.Приветствуются комментарии для улучшенного или лучшего решения.
ОБНОВЛЕНИЕ: После проб и ошибок + некоторые другие подсказки (https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-4.0/aa970069(v=vs.100)), Я придумал более простое решение, и оно работает (для меня)
В ресурсах объявляют:
<BitmapImage x:Key="mLegend" UriSource="pack://siteoforigin:,,,/Images/Toolbars/Legend/Legend.png"/>
под Кнопкой объявляют:
<Image Source="{StaticResource mLegend}"/>
set BuildAction = Content & Copy to OutputDirectory = Копировать, если новый
как последний шаг, Очистить и построить решение.