Maison >développement back-end >C++ >Comment charger correctement les images à partir des ressources dans WPF ?

Comment charger correctement les images à partir des ressources dans WPF ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-17 06:16:10912parcourir

How to Correctly Load Images from Resources in WPF?

Chargement d'images en tant que ressources dans WPF

Dans le développement WPF, vous souhaitez souvent intégrer des images en tant que ressources dans votre projet pour un accès et un déploiement faciles. Cependant, définir dynamiquement la source de l’image dans le code peut parfois s’avérer difficile.

Supposons que vous rencontriez des difficultés pour charger une image à partir d'une ressource en utilisant le code suivant :

<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>

Bien que le flux contienne des données d'image, l'image est toujours invisible. La solution réside dans l’utilisation des Pack URI, un schéma d’URI spécialement conçu pour charger des ressources à partir d’assemblys.

Voici une méthode mise à jour qui inclut l'URI du pack :

<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>

Cet URI spécifie l'autorisation comme "application:///", suivi du nom court de l'assembly, du chemin d'accès au fichier de ressources et des barres obliques remplacées par des virgules. Assurez-vous également de définir la ressource image sur « ressource » comme action de construction.

L'utilisation des URI de pack garantit un chargement fiable des ressources intégrées dans WPF, vous permettant d'intégrer de manière transparente des images dans votre interface utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn