【问题标题】:Reference images stored in external dll using wpf使用 wpf 引用存储在外部 dll 中的图像
【发布时间】:2011-01-17 07:55:09
【问题描述】:

我有一个 wpf 应用程序和一个类库 (dll) 项目。在我的 dll 中,我有一个图像文件夹,其中一些 .png 文件设置为资源。

我想使用 wpf 主应用程序引用和显示图像。

有什么想法吗?如果可能的话,我想在 xaml 中而不是后面的代码中执行此操作。

Ta, 马特。

【问题讨论】:

    标签: c# wpf image dll png


    【解决方案1】:

    假设您从 WPF 应用程序引用类库,您可以使用以下 XAML 在 WPF 应用程序中引用和显示图像:

    <Image Source="/ClassLibraryName;Component/images/myimage.png"/>
    

    这里重要的是“ClassLibraryName”,它是类库的程序集名称。 “/images/myimage.png”是您的图片的路径。

    您可以了解有关 WPF 包 URI here 的更多信息。

    【讨论】:

    • 好极了。 “组件”必须在那里做什么?
    • 如果要将图像嵌入到程序集中,请确保将资源的“构建操作”设置为“资源”。如果您不想嵌入图片,“内容”也可以。
    • 如果你有一个类库、一个WPF应用和一个MVC应用; WPF 和 MVC 是否可以使用相同的代码(考虑到它是 XAML)访问这些图像文件,或者您是否必须对 MVC 应用程序的目录进行硬编码?
    • 我发现这个:stackoverflow.com/questions/12882628/… 为两个应用程序创建一个公共存储库,但问题是使用它来上传文件。
    • 这可行,但我们必须确保引用的图像文件的“构建操作”设置为“资源”
    【解决方案2】:

    这对我不起作用:

    <Image Source="/ClassLibraryName;Component/images/myimage.png"/>
    

    但是这样做了:

    <Image Source="pack://application:,,/ClassLibraryName;Component/images/myimage.png"/>
    

    在此之前我也进行了清理和重建,但只有在添加了这个附加位之后才检索到图像。

    【讨论】:

      【解决方案3】:

      我已经在下面使用了,但是还是不行。

      <Image Source="/ClassLibraryName;Component/images/myimage.png"/>
      

      我将“构建操作”更改为“资源”,但仍然无效。

      最后,清理解决方案并重建所有后,它成功了!!!

      设置:Microsoft Visual Studio Enterprise 2015、Windows 10 Pro、C#

      【讨论】:

        【解决方案4】:

        类库项目中的第一个将图像(实际图像)构建类型设置为资源。 每当您想使用图像时,将此类库引用提供给项目。 当你想要这个图像代码作为 wpf 的关注时。

        <Image Source="pack://application:,,,/YOUR_DLL_FILE_NAME;Component/Images/Splashscreen.png" Stretch="Fill" />
        

        图片是文件夹名称

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多