Maison >développement back-end >C++ >Comment charger correctement les images à partir des ressources dans 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!