【问题标题】:Visual Studio designer can find resource image but not during runtimeVisual Studio 设计器可以找到资源图像,但不能在运行时找到
【发布时间】:2014-08-04 19:11:11
【问题描述】:

我正在使用 Visual Studio 2013 和 .NET 4.5。

我有一个图像链接如下,带有 \\,它显示在 VS 设计器视图中,但在运行时不显示。

<Image Grid.Column="1" Source="..\\Resources\\MyImage.bmp" Stretch="Uniform"/>

经过相当多的尝试,我通过将 \\ 更改为 / 符号使其工作,如下所示:

<Image Grid.Column="1" Source="../Resources/MyImage.bmp" Stretch="Uniform"/>

我只是好奇为什么设计师能够在运行时找到我的带有反斜杠的图像,然后为什么正斜杠解决了这个问题。有人知道吗?谢谢

【问题讨论】:

  • 哦对了,忘了说 Build Action 设置为“Resource”
  • 你试过单反斜杠吗? XAML 不是 C#。
  • 哦,你是对的,单反斜杠确实有效。现在我觉得自己很笨哈哈

标签: c# wpf xaml visual-studio-2012


【解决方案1】:

XAML

<Image Source="pack://application:,,,/yournamespace;component/Resources/MyImage.bmp"/>

如果我正确理解您的问题。检查您对图像的构建操作。

假设您的图像位于项目的 Resources 文件夹中。 如果您想知道 /Resources/MyImage.bmp 之前的整个长字符串,那是为了允许从其他程序集中使用组件,并且是在 xaml 中定义图像的安全方法。 “yournamespace”是您项目的命名空间。

http://msdn.microsoft.com/en-us/library/aa970069.aspx

【讨论】:

    【解决方案2】:

    在解决方案资源管理器中选择图像并将其设置为 Copy to Output DirectoryCopy if Newer 并确保构建操作设置为 Content

    【讨论】:

    • 不,当图像文件是资源时不要这样做。
    • 已经被问过很多次了。参见例如this answer
    【解决方案3】:

    例如:&lt;img src="\website\file_name.jpg" /&gt;

    这是无效的,因为 URL 中不允许使用反斜杠,并且必须使用反斜杠 被逃脱。 所以当你带着你的代码上网时,所有的反斜杠都不能被读取。

    正确的写法是:

    <img src="/website/file_name.jpg" />
    

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-16
      • 1970-01-01
      • 1970-01-01
      • 2012-01-18
      • 2018-05-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多