Как изменить изображение на кнопке после завершения процесса в WPF С#?

У меня есть button со значком, установленным по умолчанию. Я хочу изменить значок по завершении определенного процесса. Процесс работает, но когда дело доходит до изменения изображения, он говорит resource not found. В папке Отлаживать есть папка картинки.

Я скопировал и вставил путь, указанный в ошибке. Путь и файл существуют, но я получаю сообщение об ошибке. Кроме того, Build Action установлен на Resource.

ePUB WPF image change error

Создание кнопки:

<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);
}
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
1
0
137
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Установите 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.

System.IO.IOException: 'Cannot locate resource 'images/load-file-unsuccessful.ico'.' - Это ошибка, которую я получаю. Файл существует по указанному пути.
Omanshu Chaurasia 22.05.2019 15:35

@OmanshuChaurasia: Вы добавили папку с изображениями в свой проект и установили действие сборки на ресурс? Вы не можете найти ресурс в выходной папке.

mm8 22.05.2019 15:36

Да, как указано в вопросе. Кроме того, я обновил вопрос с тем же скриншотом.

Omanshu Chaurasia 22.05.2019 15:40

Является ли ePUBWPF фактическим приложением WPF или это библиотека, на которую ссылаются?

mm8 22.05.2019 15:44

Это имя папки, в которой я сохранил свое решение. C:\Users\amanc\source\repos\ePUBWPF\ePUBWPF\bin\Debug. Это мой Путь к папке

Omanshu Chaurasia 22.05.2019 15:46

Абсолютные пути к файлам не применяются к ресурсам. Опять же, ePUBWPF — это приложение или библиотека? В последнем случае вы должны включить имя сборки в URI пакета. Пожалуйста, обратитесь к ссылке, которую я разместил для получения дополнительной информации.

mm8 22.05.2019 15:57

это приложение

Omanshu Chaurasia 22.05.2019 16:03

Тогда мой пример кода должен работать при условии, что вы не ошиблись в имени файла или папки.

mm8 22.05.2019 16:04

Другие вопросы по теме