【问题标题】:Why can't I find resource using pack URI but can with relative path?为什么我无法使用包 URI 找到资源,但可以使用相对路径?
【发布时间】:2016-03-28 21:37:29
【问题描述】:

我的项目的 Styles 文件夹中有一个 myresource.xaml。我可以使用相对 URI(第一行)加载它,但不能使用包 URI(第二行)加载它。为什么会这样?

<ResourceDictionary Source="/Styles/myresource.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Styles/myresource.xaml"/>

【问题讨论】:

  • 是在同一个程序集中吗?
  • @AyyappanSubramanian 它在同一个应用程序中。否则,第一种方法不会失败吗?
  • @AyyappanSubramanian 我发现问题是 UWP 应用无法识别 pack: URI,不像 WPF 应用。它会识别 ms-appx:// URI。

标签: .net xaml win-universal-app windows-10 windows-10-universal


【解决方案1】:

Pack URI 是一个 WPF/Silverlight 概念。 UWP 以不同方式处理加载文件资源。

要访问应用程序包中的文件,您可以使用直接或逻辑文件路径来引用资源。

<ResourceDictionary Source="/Styles/myresource.xaml"/>
<ResourceDictionary Source="ms-appx:///Styles/myresource.xaml"/>

要访问与当前 XAML 页面相关的文件,您可以使用相对 URI。

<ResourceDictionary Source="Styles/myresource.xaml"/>

要访问存储在应用数据中的文件,请使用 ms-appdata: 方案。应用数据可能存储在本地文件夹、漫游文件夹或临时文件夹中。

访问存储在本地文件夹中的文件:

<Image Source="ms-appdata:///local/images/logo.png" />

访问存储在漫游文件夹中的文件:

<Image Source="ms-appdata:///roaming/images/logo.png" />

访问存储在临时文件夹中的文件:

<Image Source="ms-appdata:///temp/images/logo.png" />

【讨论】:

  • 谢谢。我发现访问DLL(foo.dll)中的资源也是“ms-appx:///foo/myresource.xaml”?
猜你喜欢
  • 1970-01-01
  • 2012-11-03
  • 1970-01-01
  • 2019-07-03
  • 1970-01-01
  • 1970-01-01
  • 2021-08-03
  • 2015-08-04
  • 2015-03-21
相关资源
最近更新 更多