代码之家  ›  专栏  ›  技术社区  ›  Andrea Tassera

位图从内部路径到解决方案-NotSupportedException[复制]

  •  0
  • Andrea Tassera  · 技术社区  · 7 年前

    我在winform上显示一些图像时遇到问题。 在一个表单中,我有一个wpf容器,它有一个wpf控件,它可以从外部exe(将图像作为资源)加载图像,它引用包含该表单的dll,以及显示这些图像的wpf容器。

    现在,我想添加另一个winform,我需要在那里显示使用wpf容器显示的相同图像,但是我不能向这个窗体添加wpf容器,因为我需要在组合框中显示图像。

    如何使用URI包加载这些映像,或者如何将这个URI转换为可以从winform使用的东西。

    示例uri。

    pack://application:,,,/myPack;component/Images/image.png
    
    0 回复  |  直到 15 年前
        1
  •  4
  •   Ed Bayiates    15 年前

    您要做的是读取图像数据以便在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);
    

    编辑:如果您得到一个关于无效端口的异常,请确保您已经注册了pack方案,您只需引用它就可以了。所以把这行代码放在上面的前面:

    string s = System.IO.Packaging.PackUriHelper.UriSchemePack; 
    
        2
  •  0
  •   fiaharon    9 年前

    注意!!

    你应该使用这个:

    资源 流(uri);

    而不是这样:

    应用程序。获取 流(uri);