Benutzer mit den meisten Antworten
WPF Image Bild zuweisen

Frage
-
Ich hab ein Problem und such schon die ganze Zeit nach einer Lösung.
Ich habe ein Image-WPF Control
<Image Grid.Row="0" Source="{Binding ScrewImage}" Stretch="Fill" Grid.ColumnSpan="6" HorizontalAlignment="Center" VerticalAlignment="Center" />
und möchte über das ViewModel das Bild dynamisch zuweisen können.
private Bitmap screwImage; public Bitmap ScrewImage { get { return this.screwImage; } set { SetProperty(ref screwImage, value); } }
Die Bilder liegen in den Resoursen-Bereich. Wenn ich die Bilder zuweise funktioniert das Binding nicht.
Ich setzte die Bilder über eine Methode und weise das jeweilige Bild zu
if (Screw.FK_Screw_DIN == 1) { ScrewImage= Resources.Schraube_4014; } else if (Screw.FK_Screw_DIN == 2) { ScrewImage= Resources.Schraube_4017; }
Ich hab da einige verschiedene Varianten gesehen wie es andere gelöst haben doch keine hat wirklich funktioniert.
Hat mir da jemand einen Tipp oder kann mir helfen??
Vielen Dank im VorausLiebe Grüße
Jo- Bearbeitet Joachim Hiller Mittwoch, 4. November 2015 15:21
Antworten
-
Hallo zusammen,
eine Alternative zu Heiko:
Suche die Dateien im Projektmappen-Explorer heraus und setze in den Eigenschaften der Dateien den Build-Vorgang auf Ressource. Anschließend kannst du das Bitmap Image über die passende Pack-URI erzeugen. Siehe hier.
ScrewImage = new BitmapImage(new Uri(@"pack://application:,,,/Resources/myImage;
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert Joachim Hiller Mittwoch, 4. November 2015 16:20
Alle Antworten
-
Hallo Jo,
die Bitmaps aus den Resourcen können nicht einfach im WPF verwendet werden, sie müssen in eine BitmapSource umgewandelt werden:
BitmapSource source = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(Resources.Schraube_4014.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); return source;
Gruß
Heiko
- Bearbeitet Heiko65456465 Mittwoch, 4. November 2015 15:48
-
Hallo zusammen,
eine Alternative zu Heiko:
Suche die Dateien im Projektmappen-Explorer heraus und setze in den Eigenschaften der Dateien den Build-Vorgang auf Ressource. Anschließend kannst du das Bitmap Image über die passende Pack-URI erzeugen. Siehe hier.
ScrewImage = new BitmapImage(new Uri(@"pack://application:,,,/Resources/myImage;
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert Joachim Hiller Mittwoch, 4. November 2015 16:20