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
)?