【问题标题】:Why can't I set the Image Source in WPF app?为什么我不能在 WPF 应用程序中设置图像源?
【发布时间】:2012-10-15 14:00:50
【问题描述】:

我只是在学习 WPF。我正在使用 VS 2008。我在我的 XAML 中添加了一个图像控件,并在项目中添加了一个 GIF 文件。如果我使用 XAML 设计器的属性面板设置图像的 Source 属性,则 Source 属性的下拉列表包含以下内容:

C:\Sample Project;component/pinHorizo​​ntal.gif

这有几个问题:

  1. 我的名为“Sample Project”的项目不在我的驱动器的根目录中。

  2. 为什么里面有“;component”?

如果我选择此值作为给定值,我会收到错误“属性值无效”(是的,不开玩笑)。

如果我进入 XAML 源并手动设置 Source 属性,如下所示:

<Image Name="PinImage" Source="pinHorizontal.gif"/>

XAML 设计器给了我这个错误:

“文件 pinHorizo​​ntal.gif 不是项目的一部分,或者它的“构建操作”属性未设置为“资源”。”

为什么这个任务这么难?如何分配图像源?

【问题讨论】:

    标签: wpf image xaml resources


    【解决方案1】:

    阅读this article - 虽然被警告它不是特别轻松阅读:-)

    我怀疑你想要的图像路径是pack://application:,,,/pinHorizontal.gif。如果您的图像设置为ResourceBuildAction,这将正常工作。

    【讨论】:

    • WPF 无疑是强大且高效的——但为什么他们必须将它的许多约定和语法弄得如此复杂?
    • 权力越大,混乱越大;-)
    • 谢谢。更新为指向特定(旧).NET 框架版本,以便链接再次工作。
    【解决方案2】:

    在SolutionExplorer中右击图片文件(pinHorizo​​ntal.gif),转到属性,这里是'Build Action'属性,你需要将它设置为'Resource'。希望对你有帮助!!

    【讨论】:

      【解决方案3】:

      这篇文章是“也是”……不是对原始问题的回答。

      我只是想我会把它记录下来,以防其他一些可怜的鼻屎将来有这个问题......并且谷歌搜索该错误消息会发现这个 SO 问题......所以这是一个这样做的好地方。

      我一直在创建新图标(实际上是位图)并将它们“即时”添加到我的 Visual Studio 2008 项目中(即添加〜现有项目)。 IDE 一直在我的 XAML 页面上报告 file ${filename} is not part of the project or its 'Build Action' property is not set to 'Resource' 错误......但是我的项目构建并运行正常......所以给出了什么?

      我尝试了所有我能想到的 get visual studio 来刷新它的文件系统视图,但无济于事。

      好吧,我刚刚发现重新启动 Visual Studio 会“刷新”其文件系统/构建输出内容的缓存,这会使 IDE 中那些烦人的非错误消失。于是我添加了一批图标,全部标记为Resources~如果较新则复制,构建,然后重启IDE,就一切正常了。

      大家干杯。基思。

      【讨论】:

        【解决方案4】:

        在解决方案资源管理器中,选择您的项目并右键单击重建解决方案,然后尝试再次添加图像,它应该可以正常工作。

        --或--

        构建选项卡下选择重新构建解决方案,然后再次尝试添加图像。

        【讨论】:

          【解决方案5】:

          您可以使用 XAML 中的这段代码从绝对路径加载图像,而无需进行任何设置。使用 DecodePixelWidth 或 DecodePixelHeight 来节省应用程序内存。

          <Image>
                  <Image.Source>
                      <BitmapImage DecodePixelWidth="200" UriSource="C:\image.png" />
                  </Image.Source>
          </Image>
          

          希望对你有帮助!

          【讨论】:

            【解决方案6】:

            我遇到了完全相同的问题。 I just manually typed in the location of the file when the Choose image box pops up and that worked for me.

            在我让它工作后再次打开选择图像框,并注意到file:/// 现在位于文件位置的前面。我对 Visual Basic(这是我正在使用的)几乎一无所知,所以对此可能有一个很好的解释,但我没有。

            【讨论】:

              猜你喜欢
              • 2013-02-28
              • 2017-12-01
              • 2016-07-17
              • 2022-11-11
              • 1970-01-01
              • 2016-04-07
              • 2016-06-09
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多