WPF-Fensterhintergrundbild in C # -Code ändern

Ich habe einige Bilder als Anwendungsressourcen konfiguriert.

Wenn meine Anwendung gestartet wird, wird der Hintergrund des Hauptfensters über XAML festgelegt:

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

Wenn ein bestimmtes Ereignis eintritt, möchte ich diesen Hintergrund in eine andere Ressource ändern "/myapp;component/Images/icon_gray.png").

Ich habe versucht, zwei Konstanten zu verwenden:

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")));

... aber natürlich bekomme ich eine Ausnahme mit ungültigem URI.

Gibt es eine einfache Möglichkeit, das Hintergrundbild zu ändern (überthis.Background = ...) eines WPF-Fensters unter Verwendung entweder des Uri-Pakets oder der Ressource (d. h .:Myapp.Properties.Resources.icon)?

Antworten auf die Frage(14)

Ihre Antwort auf die Frage