- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WPF 中的 Pack URI
WPF 中的 Pack URI
在 Windows Presentation Foundation (WPF) 中,使用uniform resource identifiers (URIs) 标识和加载文件的方式有很多,包括:
指定当应用程序第一次启动时显示的user interface (UI)。
加载图像。
导航到页
加载不可执行的数据文件。
此外,可以使用 URIs 标识和加载位于各种位置的文件,这些位置包括:
当前程序集。
所引用的程序集。
相对于程序集的某个位置。
应用程序的源站点。
为了提供从这些位置标识和加载上述类型的文件的一致机制,WPF 利用了 pack URI 方案的扩展性。 本主题将概述这一方案,介绍如何为各种方案构造 pack URIs,讨论绝对和相对 URIs 以及 URI 解析,然后说明如何在标记和代码中使用 pack URIs。
本主题包括下列各节。
Pack URI 方案
资源文件 Pack URI
内容文件 Pack URI
源站点 Pack URI
页面文件
绝对与相对 Pack URI
Pack URI 解析
使用 Pack URI 编程
相关主题
Pack URI 方案
Pack URI 方案由 Open Packaging Conventions(开放式打包约定,OPC)规范使用,该规范描述用于组织和标识内容的模型。 此模型的关键元素是程序包和部件,其中,“程序包”是一个或多个逻辑“部件”的逻辑容器。 下图阐释了此概念。
为了标识部件,OPC 规范利用 RFC 2396(统一资源标识符 (URI):一般语法)的扩展性来定义 pack URI 方案。
URI 所指定的方案由其前缀定义;http、ftp 和 file 是众所周知的示例。 Pack URI 方案使用“pack”作为它的方案,并且包含两个组件:授权和路径。 以下是 pack URI 的格式。
pack://授权/路径
授权 指定包含部件的程序包的类型,而路径 则指定部件在程序包中的位置。
下图阐释了此概念:
程序包和部件之间的关系类似于应用程序和文件之间的关系,其中,应用程序(程序包)可以包含一个或多个文件(部件),包括:
编译到本地程序集中的资源文件。
编译到所引用的程序集中的资源文件。
编译到进行引用的程序集中的资源文件。
内容文件。
源站点文件。
为了访问这些类型的文件,WPF 支持两种授权:application:/// 和 siteoforigin:///。 Application:/// 授权标识在编译时已知的应用程序数据文件,包括资源文件和内容文件。 Siteoforigin:/// 授权标识源站点文件。 下图显示了每种授权的范围。
注意 Pack URI 的授权组件是一个嵌入式 URI,它指向程序包并且必须符合 RFC 2396。 另外,必须用字符“,”替换字符“/”,并且必须对保留字符(如“%”和“?”)进行转义。 有关详细信息,请参见 OPC。 以下各节解释如何将这两种授权与用于标识资源、内容和源站点文件的相应路径结合起来,以便构造 pack URIs。
资源文件 Pack URI
将资源文件配置为 MSBuild Resource 项并将其编译到程序集中。 WPF 支持构造可用于标识资源文件的 Pack URIs,这些资源文件要么编译到本地程序集中,要么编译到从本地程序集引用的程序集中。
本地程序集资源文件
编译到本地程序集中的资源文件的 pack URI 使用以下授权和路径:
授权:application:///。
路径:资源文件的名称,包括它的相对于本地程序集项目文件夹根目录的路径。
下面的示例演示一个 XAML 资源文件的 pack URI,该资源文件位于本地程序集的项目文件夹的根目录中。
pack://application:,,,/ResourceFile.xaml
下面的示例演示一个 XAML 资源文件的 pack URI,该资源文件位于本地程序集的项目文件夹的子文件夹中。
pack://application:,,,/Subfolder/ResourceFile.xaml
所引用的程序集资源文件
编译到所引用的程序集中的资源文件的 pack URI 使用以下授权和路径:
授权:application:///。
路径:编译到所引用的程序集中的资源文件的名称。 路径必须符合以下格式:
程序集短名称[;版本][;公钥];组件/路径
程序集短名称:所引用的程序集的短名称。
;版本 [可选]:所引用的包含资源文件的程序集的版本。 此部分在加载两个或多个具有相同短名称的所引用的程序集时使用。
;公钥 [可选]:用于对所引用的程序集进行签名
文档评论(0)