UWP - 应用程序文件夹中的图像Uri

Ste*_*han 20 c# xaml win-universal-app

我在这里展示图像时遇到了一些问题.

因此,当我尝试从XAML加载图像时,我可以使用相对uri到图像源,如下所示:

<Image Source="/Assets/image.jpg" />
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试以编程方式从代码后面更改图像源,我总是得到一个例外,我确定这是因为虚假的Uri.我试过这样的事情:

BitmapImage bitmapImage = new BitmapImage(new Uri("/Assets/image.jpg"));
Run Code Online (Sandbox Code Playgroud)

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

小智 33

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

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

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

阅读此文档以获取更多详细信息:https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh965322.aspx

希望能帮助到你.

  • 项目必须从包根搜索,你需要3 /在开头:"ms-appx:/// [project-name] /Assets/image.jpg" (2认同)

Zia*_*man 33

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

BitmapImage bitmapImage = new BitmapImage(new Uri(this.BaseUri, "/Assets/image.jpg"));
Run Code Online (Sandbox Code Playgroud)

资产是文件夹名称,您可以使用任何自定义文件夹名称更改它:)


小智 5

我相信WPF更宽容,并且可能会出现“ Assets / image.png”之类的路径。如果要编写UWA(Win 10)应用程序,则需要使用“ ms-appx” URI。

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

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