c# - 使用 pack uri 在 winforms 中加载图像

标签 c# .net wpf uri

我在尝试在 winform 上显示一些图像时遇到问题。 在一种窗体上,我有一个 wpf 容器,它有一个 WPF 控件,可以毫无问题地从外部 exe(将图像作为资源)加载图像,该控件引用包含窗体的 dll,使用 wpf 容器,显示它们。

现在,我想添加另一个 winform,并且需要在那里显示使用 wpf 容器显示的相同图像,但我无法将 wpf 容器添加到此表单,因为我需要在组合框。

如何使用 URI 包加载此图像,或者如何将此 uri 转换为可以从 winform 中使用的内容。

示例 uri。

pack://application:,,,/myPack;component/Images/image.png

最佳答案

您要做的是读取图像数据以在Winforms中使用,因此您需要直接访问嵌入的资源图像文件,可以这样完成:

Uri uri = new Uri("pack://application:,,,/myPack;component/Images/image.png", UriKind.RelativeOrAbsolute);
StreamResourceInfo info = Application.GetContentStream(uri);
System.Drawing.Image myImage = System.Drawing.Image.FromStream(info.Stream);

编辑:如果您收到有关无效端口的异常,请确保您已注册包方案,只需引用它即可完成此操作。所以把这行代码放在上面的前面:

string s = System.IO.Packaging.PackUriHelper.UriSchemePack; 

关于c# - 使用 pack uri 在 winforms 中加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6114990/

相关文章:

c# - 为什么 Excel Interop 会在处理文件后删除图像?

.net - web.config 覆盖 app.config...为什么?

c# - 将 Html 转换为 Pdf 的最快方法是什么?

.net - 是否有任何 .net 等同于 Rails 固定装置?

c# - 从数据库项目运行执行 SQL 命令时在哪里指定全局数据库连接字符串?

C# 等效于此 VB6 字符串格式?

C#:存储百分比,50 还是 0.50?

wpf - 拖放到一个TreeView,找到插入拖放项的索引

wpf - 对多个文本框重复使用工具提示

c# - 如何自定义WPF Ribbon 4.5(样式、模板等)