Использование изображения ресурса в коде позади - PullRequest
6 голосов
/ 22 апреля 2009

Мне нужно динамически изменить фоновое изображение, примененное к одной из моих кнопок, но не могу понять, как. Изображения добавляются в проект, и для их действия «Построение» установлено значение «Ресурс». Я пробовал следующее:

buttonUnits.Background = new ImageBrush(new BitmapImage(new Uri("/Images/InchDOWN.png",UriKind.Relative)));

Это успешно компилируется, но завершается с ошибкой DirectoryNotFoundException, говорящей "Не удалось найти часть пути 'C: \ Images \ InchDOWN.png'."

Я не хочу, чтобы приложение искало изображение на диске. Как я могу использовать изображение как встроенный ресурс? Я думаю, что это включает в себя изменение действия сборки на встроенный ресурс, но как мне использовать этот ресурс в коде позади?

1 Ответ

8 голосов
/ 22 апреля 2009

Вы должны построить образ как Ресурс НЕ встроенный ресурс. Ресурс предназначен специально для проектов WPF.

Для использования в процедурном коде:

 buttonUnits.Background = new ImageBrush(new BitmapImage(new Uri("pack://application:,,,/Images/InchDOWN.png")));

Это гораздо проще сделать в XAML, который я рекомендую.

Редактировать

Я забыл косую черту перед изображениями, это может быть проблемой. Вот статья MSDN о пакете Uris , если вам нужна дополнительная информация.

Может быть, вам следует опубликовать вопрос с указанием того, что именно вы пытаетесь выполнить, и, надеюсь, открыть для себя различные подходы к проблеме с несколькими состояниями кнопок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...