【问题标题】:Image XAML tag (Win8) not working with some paths图像 XAML 标记 (Win8) 不适用于某些路径
【发布时间】:2012-12-30 20:58:45
【问题描述】:

Image 标记的 Source 属性仅适用于添加到解决方案资源管理器中“Assets”文件夹的文件。

我在 Assets 目录中有两个文件:Logo.png 和 Logo2.png,但只有 Logo.png 被添加到解决方案资源管理器的“Assets”中。此图像正常工作:

<Image Source="/Assets/Logo.png"/>

虽然这张图片没有显示:

<Image Source="/Assets/Logo2.png"/>

像“C:\Users\user\Pictures\img.jpg”这样的文件路径也不起作用。 是否可以访问解决方案资源管理器的“资产”文件夹中未指定的图像?

编辑:

这是我的工作:

  1. 在 VS2012 中创建新项目:Visual C# -> Windows Store -> Blank App (XAML)
  2. 打开 MainPage.xaml
  3. 从工具箱中选择图像并在设计模式下绘制图像元素
  4. Source 属性的唯一工作值是“/Assets/Logo.png”。这些不起作用:'C:\images\img.jpg'、'/Assets/Logo2.png'、'Project_name;component/Assets/Logo.png'、'Project_name;component/Assets/Logo2.png'等.

【问题讨论】:

    标签: c# xaml windows-8 visual-studio-2012


    【解决方案1】:

    这是您要使用的格式:

    Project;component/ImagePath
    

    其中 Project 是您要引用的程序集(大多数情况下为项目)的名称,“component”指定所引用的程序集是从本地程序集引用的。

    所以对于 Logo2,你会这样做:

    <Image Source="ImageDemo;component/Assets/Logo2.png" Name="custLogo"/>
    

    其中“ImageDemo”是项目名称,“Assets/Logo2.png”是项目内部路径。

    至于绝对路径,以下对我来说很好用:

    <Image Source="C:\Images\001.jpg"></Image>
    

    【讨论】:

    • 特别是 ImageDemo 不是隐含的项目名称,而是包含资产文件夹的程序集的名称;)
    • @MarcoKlein 对,这通常不是项目名称吗?它可以更改,但默认情况下?如果我错了,请纠正我! :)
    • 带有绝对路径的文件呢?如何从用户的本地机器加载图像?
    • @miloszmaki 试试这个:&lt;Image Source="pack://siteoforigin:,,,/Assets/Logo2.jpg" Name="custLogo"/&gt;
    • 我无法让它以任何方式工作。也许我必须在项目属性中指定一些选项?
    【解决方案2】:

    好的,这是我发现的:

    Windows 应用商店应用程序 (Win8) 对文件的访问权限有限。所以我只能使用应用程序附带的文件。但是,如果用户在文件选择器中选择文件,则可以获取用户的文件。

    还有一个很棒的示例here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-16
      • 1970-01-01
      • 2022-01-26
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 2020-10-16
      • 2019-04-11
      相关资源
      最近更新 更多