Ich habe eine WPF-Anwendung, die dem Benutzer Feedback zu einem internen Status geben muss. Das Design soll drei Bilder haben, nennen sie Rot, Gelb und Grün. Eines dieser Bilder wird je nach Status zu einem bestimmten Zeitpunkt angezeigt. Hier sind die Punkte:
Ich gehe davon aus, dass ich einen Bildkonverter brauche, um das JPG-Bild in eine Bildquelle wie:
zu ändern %Vor%Ich würde es vorziehen, die Bilder während der Initialisierung einmal zu konvertieren und eine Liste von Bildquellen zu behalten. Ich nehme auch an, dass ich eine Abhängigkeitseigenschaft benötige, um das Steuerelement zu binden, aber ich bin nicht sicher, wie man das mit dieser Liste von Bildquellen einrichtet:
%Vor% Obwohl eine Bildressource in einem WPF-Projekt eine System.Drawing.Bitmap
-Eigenschaft in Resources.Designer.cs
generiert, können Sie direkt eine BitmapImage
von dieser Ressource. Sie müssen nur die Build-Aktion der Image-Datei auf Resource
(anstelle des Standard None
).
Wenn Sie eine Datei Red.jpg
im Ordner Resources
Ihres Visual Studio-Projekts haben, sieht die Erstellung von BitmapImage
wie folgt aus. Es verwendet ein WPF Pack Uri .
Wenn Sie ein Image
-Steuerelement irgendwo in XAML wie folgt deklariert haben:
Sie können einfach die Eigenschaft Source
des Bildes auf Ihre BitmapImage im Code dahinter setzen:
Wenn Sie die Eigenschaft Source
durch Bindung festlegen möchten, können Sie eine Eigenschaft string
erstellen, die den Image-URI zurückgibt. Die Zeichenfolge wird automatisch von einem integrierten BitmapImage
In XAML würden Sie wie folgt an diese Eigenschaft binden:
%Vor% Natürlich können Sie die Eigenschaft auch als Typ ImageSource
und bind auf die gleiche Weise:
%Vor%Jetzt können Sie Ihre Bilder vorladen und sie nach Bedarf in die Eigenschaft einfügen:
%Vor% UPDATE: Schließlich müssen Ihre Bilder keine Ressourcen im Visual Studio-Projekt sein. Sie könnten einfach einen Projektordner hinzufügen, die Bilddateien in diesen Ordner kopieren und ihre Build-Aktion auf Resource
setzen. Wenn Sie zum Beispiel den Ordner Images
aufrufen, wäre der URI pack://application:,,,/Images/Red.jpg
.
Tags und Links wpf imagesource