C#UWP应用程序崩溃,如果辅助图像资源不是来自资产文件夹



基本上,我正在尝试制作一个UWP应用程序,以在开始菜单上创建自定义图块。当瓷砖图像来自Assets文件夹时,次级工具正在工作。

Uri square150x150Logo = new Uri("ms-appx:///Assets/square150x150Tile-sdk.png");
Uri wide310x150Logo = new Uri("ms-appx:///Assets/wide310x150Tile-sdk.png");
Uri square310x310Logo = new Uri("ms-appx:///Assets/square310x310Tile-sdk.png");
Uri square30x30Logo = new Uri("ms-appx:///Assets/square30x30Tile-sdk.png");

但是我在ApplicationData文件夹中有图像,并尝试使用这样的路径:

Uri square150x150Logo = new Uri(Path.Combine(ApplicationData.Current.TemporaryFolder.Path, "ImageSquare.png"));
Uri wide310x150Logo = new Uri(Path.Combine(ApplicationData.Current.TemporaryFolder.Path, "ImageWide.png"));
Uri square310x310Logo = new Uri(Path.Combine(ApplicationData.Current.TemporaryFolder.Path, "ImageLarge.png"));
Uri square30x30Logo = new Uri(Path.Combine(ApplicationData.Current.TemporaryFolder.Path, "ImageTiny.png"));

但是,这样的应用程序正在崩溃。调试器也无法正常工作。有什么解决方案?

要引用应用程序数据文件,您应该使用ms-appdata:///

调用TemporaryFolder.Path将返回绝对文件路径C:,该路径不允许在辅助图块上使用。

,您的更新代码将是...

Uri square150x150Logo = new Uri("ms-appdata:///temp/ImageSquare.png"));

确定终于弄清楚了。除了安德鲁的答案外,我还必须更改为使用LocalState文件夹而不是TempState。Andrew以正确的方式使用ms-appdata,但由于某种原因,ms-appdata:///temp/返回错误。但是使用ms-appdata:///Local/解决了问题。

最新更新