首页 >后端开发 >C++ >如何在WPF中正确加载资源中的图片?

如何在WPF中正确加载资源中的图片?

Patricia Arquette
Patricia Arquette原创
2025-01-17 06:16:10912浏览

How to Correctly Load Images from Resources in WPF?

在 WPF 中将图像加载为资源

在 WPF 开发中,通常希望将图像作为项目中的资源嵌入,以便于访问和部署。但是,在代码中动态设置图像源有时可能具有挑战性。

假设您在使用以下代码从资源加载图像时遇到问题:

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

尽管流包含图像数据,但图像仍然不可见。解决方案在于使用 Pack URI,这是一种专门用于从程序集中加载资源的 URI 方案。

以下是一种包含 Pack URI 的更新方法:

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

此 URI 将授权指定为“application:///”,后跟程序集短名称、资源文件的路径以及用逗号替换的斜杠。此外,请确保将图像资源设置为“资源”作为其生成操作。

使用 Pack URI 可确保可靠地加载 WPF 中的嵌入式资源,使您可以将图像无缝集成到用户界面中。

以上是如何在WPF中正确加载资源中的图片?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn