Изменить фоновое изображение окна WPF в Код C #

У меня есть пара изображений, настроенных как ресурсы приложения.

Когда мое приложение запускается, фон главного окна устанавливается через XAML:

<Window.Background>
    <ImageBrush ImageSource="/myapp;component/Images/icon.png" />
</Window.Background>

Если происходит определенное событие, я хотел бы изменить этот фон на другой ресурс ( "/ myapp; component / Images / icon_gray.png" ).

Я пробовал использовать две константы:

private static readonly ImageBrush ENABLED_BACKGROUND =
    new ImageBrush(new BitmapImage(new Uri("/myapp;component/Images/icon.png")));
private static readonly ImageBrush DISABLED_BACKGROUND =
    new ImageBrush(new BitmapImage(new Uri("/myapp;component/Images/icon_gray.png")));

... но, естественно, я получаю исключение с Invalid URI.

Есть ли простой способ изменить фоновое изображение (через this.Background = ... ) окна WPF, используя либо URI пакета, либо ресурс (например: Myapp .Properties.Resources.icon )?

27
задан Alexander Farber 2 September 2015 в 09:01
поделиться