【问题标题】:Cannot set ImageSource using pack URI无法使用包 URI 设置 ImageSource
【发布时间】:2021-08-30 20:19:13
【问题描述】:

我正在尝试使用 pack uri 设置图像源,如下所示:

<Setter.Value>
    <ImageBrush ImageSource="pack://application:,,,/Resources/grid_bg.png"/>
</Setter.Value>

使用这样的 Resources.resx 文件:

里面的图片是这样的:

但我得到的错误是:

我也尝试过:

Pack URI and path not resolving image in WPF

还有这个:

At design time pack uri is valid, but not at runtime?

还有这个:

http://csharpsimplified.wordpress.com/2009/02/16/resources-in-wpf-i-binary-resources/

虽然仍然遇到与上述相同的错误。为了宙斯的爱,请有人把我从这种卑微、令人沮丧的垃圾中解放出来,我会用赞美和积分来回报这个人情。

【问题讨论】:

  • grid_pg 有正确的访问修饰符吗?
  • 内部?上市?没有代码生成?他们都失败了。 ://
  • 我还尝试在编译时将它们链接并嵌入到 .resx 文件中 - 也没有运气。
  • 您的资源文件 .png 是否在当前项目的“资源”文件夹中,我认为您还应该在包 uri 中包含您的程序集名称?
  • 是的先生/女士-> i.imgur.com/WXhFE7s.png

标签: c# wpf xaml


【解决方案1】:

在 WPF 项目中,您通常不会将图像文件作为资源添加到 Resource.resx。相反,您只需将它们放入项目中的文件夹并将其 Build Action 设置为Resource,如下所示。

也没有必要写 Pack URI 前缀。你可以这样写:

<ImageBrush ImageSource="Resources/grid_bg.png"/>

请注意,如果您将图像添加到 Resource.resx,Visual Studio 会为每个图像生成一个带有静态属性的 Resources 类。这些属性的类型为System.Drawing.Bitmap,它是 WinForms,而不是 WPF。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-22
    • 2021-01-29
    • 2017-02-10
    • 2012-04-26
    • 2018-10-14
    • 1970-01-01
    • 2021-07-25
    • 2012-09-29
    相关资源
    最近更新 更多