pack URI

WPF使用pack URI语法寻找资源。

URI负责搜索如下位置的资源:

  • 当前程序集
  • 引用的程序集
  • 相对于程序集的某个位置
  • 应用程序的源站点

pack URI的格式:pack://机构/路径

  • 机构指定了包含部件的包类型
  • 路径是指部件在包中的位置

包和部件的关系类似应用程序与文件之间的关系,包可以包含多个部件:

  • 编译到本程序集内的资源文件
  • 编译到所引用程序集的资源文件
  • 内容文件
  • 源站点文件

MSDN上面给出了图例,告诉我们application:///权限和siteoforigin:///权限的关系:

pack URI

下面分别介绍引用资源文件的语法。

1、使用pack URI引用本地程序集资源文件:

  • 授权:application:///
  • 路径:资源文件的名称--包括相对于本地程序集项目文件夹根目录的路径。

举个例子:

  • 引用本地程序集根目录中的XAML文件
pack://application:,,,/Resource.xaml
  • 引用的资源文件位于本地程序集项目的子文件夹(subfolder)中
pack://application:,,,/subfolder/Resource.xaml

2、引用的程序集资源文件(注意:引用程序集资源的包语法只能是application:///机构)

  • 授权:application:///
  • 路径:编译到所引用的程序集中的资源文件的名称。

路径须符合以下格式:

  • 程序集段名称
  • 程序集版本[可选]
  • 公钥[可选]
  • 组件
  • 路径:资源文件的名称

举个例子:

  • 资源文件位于引用程序集项目文件夹的根目录中
pack://application:,,,/ReferenceAssembly;component/Resource.xaml
  • 资源文件位于引用程序集项目文件夹的子文件夹中
pack://applicaiton:,,,/ReferenceAssembly;component/Subfolfer/Resource.xaml
  • 资源文件位于特定版本的引用程序集项目文件夹的根目录中
pack://application:,,,/ReferenceAssembly;v1.0.0;component/Resource.xaml

3、内容文件URI的pack使用

  • 授权:application:///
  • 路径:内容文件的名称,包括文件夹的位置

举个例子:

  • 内容文件与可执行程序集位于同一文件夹中
pack://application:,,,/ContentFile.xaml
  • 内容文件位于可执行程序集的子文件中
pack://applicaiton:,,,/Subfolder/Content.xaml

4、绝对包URI和相对包URI

  • 标签中使用绝对pack URI:

pack URI

  • 标签中使用相对pack URI

pack URI

  • 代码中使用绝对pack URI

pack URI

  • 代码中使用相对pack URI

pack URI

上一篇:细说php(六) 数组


下一篇:218. The Skyline Problem