【问题标题】:UWP - Image Uri in Application FolderUWP - 应用程序文件夹中的图像 Uri
【发布时间】:2015-08-31 15:29:31
【问题描述】:

我在显示图片时遇到了一点问题。

所以当我尝试从 XAML 加载图像时,我可以像这样使用图像源的相对 uri:

<Image Source="/Assets/image.jpg" />

但是,如果我尝试从后面的代码以编程方式更改图像源,我总是会遇到异常,我确信这是因为错误的 Uri。我尝试过这样的事情:

BitmapImage bitmapImage = new BitmapImage(new Uri("/Assets/image.jpg"));

我做错了吗?任何帮助将不胜感激,谢谢!

【问题讨论】:

    标签: c# xaml win-universal-app


    【解决方案1】:

    您也可以将它与 BaseUri 一起使用。

    BitmapImage bitmapImage = new BitmapImage(new Uri(this.BaseUri, "/Assets/image.jpg"));
    

    Assets 是一个文件夹名称,您可以使用任何自定义文件夹名称进行更改:)

    【讨论】:

      【解决方案2】:

      要访问存储在应用程序包中的文件,但从没有推断 root 权限的代码中,您需要指定 ms-appx: 方案:

      所以在你的情况下,它会是这样的:

      BitmapImage bitmapImage = 
                           new BitmapImage(new Uri("ms-appx:///[project-name]/Assets/image.jpg"));
      

      阅读此文档了解更多详情:https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh965322.aspx

      希望对你有帮助。

      【讨论】:

      • 项目必须从包根目录搜索,需要3 /开头:"ms-appx:///[project-name]/Assets/image.jpg"
      • 我在使用 ms-appx:/// 前缀时得到了 System.NotSupportedException: The URI prefix is not recognized
      【解决方案3】:

      我相信 WPF 更宽容,像“Assets/image.png”这样的路径是可能的。如果您正在编写 UWA (win 10) 应用程序,那么您需要使用“ms-appx”URI。

      我的经验是“ms-appx:///Assets/image.png”工作正常。

      是的,三个“/”(!)并且不需要路径中的应用程序名称。

      【讨论】:

        【解决方案4】:
        Image img = new Image();
        img.Source = new BitmapImage(new Uri("http://www.contoso.com/images/logo.png"));
        

        【讨论】:

          【解决方案5】:

          就这样用吧

          <Image Source="Assets/image.jpg" />
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-01-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-08-01
            • 1970-01-01
            相关资源
            最近更新 更多