Meine WPF -Desktop -App lädt eine Reihe von Bildern zu Beginn des Laufs und zeigt sie drei gleichzeitig an. Wenn jedoch eines der Bilder an mehr als einem Ort angezeigt werden muss, erscheint sie nur an einer Stelle, da es nur ein Bildobjekt gibt.
Code: Select all
public static BitmapImage LoadImage(string filename)
{// source: https://www.ridgesolutions.ie/index.php/2012/02/03/net-wpf-bitmapimage-file-locking
BitmapImage bmpImage = new BitmapImage();
var stream = File.OpenRead(filename);
bmpImage.BeginInit();
bmpImage.CacheOption = BitmapCacheOption.OnLoad;
bmpImage.StreamSource = stream;
bmpImage.EndInit();
stream.Close();
stream.Dispose();
return bmpImage;
}
Diese Bilder werden an visualObject Eigenschaften der Elemente 'ViewModels angehängt und dann mit dieser itemTemplate eines itemsControl verwendet, um einen Canvas als itemsPanel :
Verwenden zu
Nun, wenn ich jedes Bild als staticResource definiert hätte, könnte ich das Attribut x: Shared = "False" verwenden, damit sie an mehr als einem Ort verwendet werden können, aber wie würde das mit Bildern funktionieren, die in den Speicher geladen wurden? Sollte ich vielleicht Ressourcen basierend auf den Bildern erstellen und ihre gemeinsam genutzten -attribute false ?