У меня есть button
со значком, установленным по умолчанию. Я хочу изменить значок по завершении определенного процесса. Процесс работает, но когда дело доходит до изменения изображения, он говорит resource not found
. В папке Отлаживать есть папка картинки.
Я скопировал и вставил путь, указанный в ошибке. Путь и файл существуют, но я получаю сообщение об ошибке. Кроме того, Build Action
установлен на Resource
.
Создание кнопки:
<Button FocusVisualStyle="{x:Null}" Name="ButtonLoad" Margin="5,9,5,8" Width="70" Background="{x:Null}" Click="ButtonLoad_Click">
<StackPanel Orientation="Horizontal">
<Label Padding="0" VerticalContentAlignment="Center">Load</Label>
<Image Source="images/load-file-default.ico" Margin="5,0,0,0" Height="19" Width="19"/>
</StackPanel>
Изменение изображения кнопки:
string LoadFileUnsuccessful = AppDomain.CurrentDomain.BaseDirectory + @"images\load-file-unsuccessful.ico";
if (condition()) //Boolean Function
{
//Process
}
else
{
//Process
ButtonLoad.FindResource(LoadFileUnsuccessful);
}
Установите Source
изображения на BitmapImage
с упаковать URI:
img.Source = new BitmapImage(new Uri("pack://application:,,,/images/load-file-unsuccessful.ico", UriKind.Absolute));
XAML:
<Button FocusVisualStyle="{x:Null}" Name="ButtonLoad" Margin="5,9,5,8" Width="70" Background="{x:Null}" Click="ButtonLoad_Click">
<StackPanel Orientation="Horizontal">
<Label Padding="0" VerticalContentAlignment="Center">Load</Label>
<Image x:Name="img" Source="images/load-file-default.ico" Margin="5,0,0,0" Height="19" Width="19"/>
</StackPanel>
</Button>
Чтобы это работало, вы должны добавить папку с изображениями в свой проект и установить Build Action
файла .ico
на Resource
.
@OmanshuChaurasia: Вы добавили папку с изображениями в свой проект и установили действие сборки на ресурс? Вы не можете найти ресурс в выходной папке.
Да, как указано в вопросе. Кроме того, я обновил вопрос с тем же скриншотом.
Является ли ePUBWPF фактическим приложением WPF или это библиотека, на которую ссылаются?
Это имя папки, в которой я сохранил свое решение. C:\Users\amanc\source\repos\ePUBWPF\ePUBWPF\bin\Debug
. Это мой Путь к папке
Абсолютные пути к файлам не применяются к ресурсам. Опять же, ePUBWPF — это приложение или библиотека? В последнем случае вы должны включить имя сборки в URI пакета. Пожалуйста, обратитесь к ссылке, которую я разместил для получения дополнительной информации.
это приложение
Тогда мой пример кода должен работать при условии, что вы не ошиблись в имени файла или папки.
System.IO.IOException: 'Cannot locate resource 'images/load-file-unsuccessful.ico'.'
- Это ошибка, которую я получаю. Файл существует по указанному пути.