Heim >Backend-Entwicklung >C++ >Wie lade ich Bilder aus Ressourcen in WPF korrekt?
Bilder als Ressourcen in WPF laden
Bei der WPF-Entwicklung möchten Sie häufig Bilder als Ressourcen in Ihr Projekt einbetten, um den Zugriff und die Bereitstellung zu erleichtern. Allerdings kann das dynamische Festlegen der Bildquelle im Code manchmal eine Herausforderung sein.
Angenommen, Sie haben Probleme beim Laden eines Bildes aus einer Ressource mit dem folgenden Code:
<code class="language-csharp">Assembly asm = Assembly.GetExecutingAssembly(); Stream iconStream = asm.GetManifestResourceStream("SomeImage.png"); PngBitmapDecoder iconDecoder = new PngBitmapDecoder(iconStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default); ImageSource iconSource = iconDecoder.Frames[0]; _icon.Source = iconSource;</code>
Obwohl der Stream Bilddaten enthält, ist das Bild immer noch unsichtbar. Die Lösung liegt in der Verwendung von Pack-URIs, einem URI-Schema, das speziell für das Laden von Ressourcen aus Assemblys entwickelt wurde.
Hier ist eine aktualisierte Methode, die den Pack-URI enthält:
<code class="language-csharp">Image finalImage = new Image(); finalImage.Width = 80; ... BitmapImage logo = new BitmapImage(); logo.BeginInit(); logo.UriSource = new Uri("pack://application:,,,/AssemblyName;component/Resources/logo.png"); logo.EndInit(); ... finalImage.Source = logo;</code>
Dieser URI gibt die Autorisierung als „application:///“ an, gefolgt vom Kurznamen der Assembly, dem Pfad zur Ressourcendatei und durch Kommas ersetzten Schrägstrichen. Stellen Sie außerdem sicher, dass die Bildressource als Build-Aktion auf „Ressource“ festgelegt ist.
Die Verwendung von Pack-URIs gewährleistet ein zuverlässiges Laden eingebetteter Ressourcen in WPF und ermöglicht Ihnen die nahtlose Integration von Bildern in Ihre Benutzeroberfläche.
Das obige ist der detaillierte Inhalt vonWie lade ich Bilder aus Ressourcen in WPF korrekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!