Heim >Backend-Entwicklung >C++ >Wie lade ich Bilder aus Ressourcen in WPF korrekt?

Wie lade ich Bilder aus Ressourcen in WPF korrekt?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-17 06:16:10907Durchsuche

How to Correctly Load Images from Resources in WPF?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn