【问题标题】:XAML Image sourceXAML 图像源
【发布时间】:2016-09-16 00:31:51
【问题描述】:

我正在使用 VS2015 编写 WPF 应用程序。我有一个包含图像控件的用户控件。我在文件系统上的图像子文件夹中有我的图像。在设计模式下,图像显示得很好,但是当我运行它时,却没有。我因此指定了图像位置:

Source="Images/ball.png"

在 Image 标签内。我尝试了所有显而易见的事情,比如将文件夹复制到bin\Debug 文件夹等。实验,这个错误信息在Source标签上弹出:

“找不到路径的一部分'C:\Program Files (x86)\New folder\Microsoft Visual Studio 14.0\Common7\IDE\Images\red-ball.png'”

我终于通过给它图像的完整路径来显示它,但我真的不认为我应该这样做。有没有办法给它一个相对于应用程序而不是 IDE 位置的相对路径?

【问题讨论】:

    标签: c# wpf image xaml


    【解决方案1】:

    首先,确保您的 Images 子文件夹与您的项目相关,即:

    • 项目
      • 图像
        • 球.png

    然后将“ball.png”添加到您的项目中,将其构建操作设置为“资源”。您的链接现在将按预期工作。

    我猜它在你提到的地方寻找图像,因为它在它想要查找的资源中找不到它。请注意,声音和视频剪辑以这种方式工作,您必须将它们复制到构建输出或使用包 URI。

    【讨论】:

    • 好的,我在文件系统中有图像,但未包含在解决方案中。我不知道为什么这很重要,但是在将它添加到解决方案之后,它发现它很好。感谢您的帮助!
    • @Frecklefoot 这很重要,因为通过将其添加到解决方案并使其成为资源,编译器实际上将其嵌入到您的 EXE 中,应用程序现在可以找到它。
    • 这是否意味着您不能从文件系统动态加载图像并将其嵌入到图像控件中?或者文件系统中的图像是否已通过代码(不是 XAML)加载?
    • @Frecklefoot 当然可以。您在 XAML 中给出的路径被解释为一个 URI,它可以是 Resource File Pack URI(当路径引用资源文件时),其中自动添加 pack://application:,,, 前缀,但也可以是相对或绝对文件 URI,或网络 URI。
    • @Frecklefoot 通常来自文件系统的图像是通过代码(使用 BitmpaImage)加载的,但正如 Clemens 指出的那样,它肯定可以在 XAML 中完成
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多