转:pack URI in WPF
一开始看到WPF里面经常用如下语句来构造资源文件Uri:
Uri uri = new Uri("/AssemblyName;component/image.png");
我还以为这种格式的字符串是URI标准规定的,但是网上查了一下却没发现有这种格式的URI字符串。
URI是统一资源标识符,通用文法为:
协议名(http,https,ftp,file等)+冒号+协议所对应的内容
URI又分为URL和URN,URL是用来定义一个资源的访问路径.而URN则是用来定义一个资源的名称。(http://zh.wikipedia.org/zh/统一资源标志符)
仔细看了一下MSDN,才发现上面格式的字符串是微软件自己扩展出来的一种URI格式,即Pack URI.这种URI在WPF里用得非常多,主要用来定位
资源文件,以及Xaml文件等。
Pack URI主要是用于描述一个Package中所包含的组成单元。
1. Pack URI的主要文法
pack://authority/path
其中authority指这里所指的Package的类型,而path主要指这里所指的组成单元在Package中路径。
WPF所支持的authority包括:application:/// 和 siteoforigin:/// :
前者主要用来描述在编绎时就已知的资源(比如:资源文件等被Project所引用的文件在编绎时刻均已知),
而后者主要用来描述在编绎时无法确定其状态的外部资源(比如:硬盘上的某个文件,或者网格上的某个文件)。
注意:在实际构建Pack URI的时需要将authority中所包含的"/"换成",". 因此 application:/// 应该为 application:,,,,siteoforigin:///类推。
2. Pack URI的用法
(1)表示当前Assembly中所引用的资源时,采用如下格式构建Pack URI
pack://application:,,,/(资源相对于Assembly所在目录的相对路径)
(2)表示当前Assemby所引用的其它Assembly所引用的资源时,采用如下格式构建Pack URI
pack://application:,,,/AssemblyShortName[;Version][;PublicKey];component/(资源相对于Assembly所在目录的相对路径)
(3)表示siteoforigin类型的资源时,采用如下格式构建Pack URI
pack://siteoforigin:,,,/(资源相对于当前执行的assembly所在位置的路径)
3. Absolute pack URI and relative pack URI
以上所说的都是Absolute pack URI,格式包含schema://authority/path.字符串比较长,写起来不是很方便。
因此还有一种简化版的relative pack URI,构造时只需要使用path即可。
注意:当表示当前Assembly中所引用的资源时,path需表示目标资源相对于当前路径的相对路径。在路径前加"/"表示相对于Assembly的根目录
https://msdn.microsoft.com/library/aa970069(v=vs.100).aspx
转:pack URI in WPF的更多相关文章
- WPF中的Pack URI
更多资源:http://denghejun.github.io 问题 说来也简单:首先,我在WPF项目中建立了一个用户自定义控件(CustomControl),VS模板为我们自动生成了 CustomC ...
- WPF 中的 Pack URI地(资源文件加载)
参考资源网http://msdn.microsoft.com/zh-cn/library/aa970069.aspx#Absolute_vs_Relative_Pack_URIs 在 Windows ...
- 资源文件加载(Pack URI 方案)
Pack URI 在 Windows Presentation Foundation (WPF) 中,使用统一资源标识符 (URI) 标识和加载文件的方式有很多,包括:1.指定当应用程序第一次启动时显 ...
- pack URI
WPF使用pack URI语法寻找资源. URI负责搜索如下位置的资源: 当前程序集 引用的程序集 相对于程序集的某个位置 应用程序的源站点 pack URI的格式:pack://机构/路径 机构指定 ...
- [WPF]使用Pack URI路径訪问二进制资源
一.路径格式定义 完整的URI定义为: pack://application,,,[/可选程序集名称;][可选版本;][目录名称/]文件名 缩略后的写法是: [目录名称/]文件名 二.在XAML代码中 ...
- wpfのuri(让你完全明白wpf的图片加载方式以及URI写法)
绝对 pack WPF URI pack://application:,,,/是协议:“,,,”是“///”的变体 1.资源文件 — 本地程序集 Uri uri = new Uri("pac ...
- 【转】【WPF】资源读取 URI
一开始看到WPF里面经常用如下语句来构造资源文件Uri: Uri uri = new Uri("/AssemblyName;component/image.png"); 我还以为这 ...
- WPF中的URI
在 Windows Presentation Foundation (WPF) 中,使用统一资源标识符 (URI) 标识和加载文件的方式有很多,包括: 指定当应用程序第一次启动时显示的用户界面 (UI ...
- WPF之命名空间和资源
1.参考: https://msdn.microsoft.com/zh-cn/library/ms747086(v=vs.110).aspx http://www.cnblogs.com/cww201 ...
随机推荐
- Jquery选择器之基本选择器
id选择器 共同点: text:代表标签之间的文本值 返回值:均为列表 根据给定的ID值匹配一个标签元素,如果id值中有元字符(如 !"#$%&'()*+,./:;<=> ...
- php读取sql2000的image字段,被截断的问题
php 存取sql server中类型的照片信息! <?php header("Content-Type:text/html;charset=gb2312"); $url=& ...
- mac idea 设置
鼠标悬停显示文档注释:preferences->Editor->General:勾选 show quick documentation on mouse move 智能提示模糊搜索:pre ...
- ubuntu下安装php memcache扩展
memcached 安装sudo apt-get install memcached memcached 参数说明memcached -d -m 50 -p 11211 -u root-m 指定使用多 ...
- lua 面向对象
对象的特点是: 对象拥有自己的数据,两个对象即使数据完全相同,他们也是相互独立的: 对象之间可以共享对象的行为,也就是他们的方法是一致的: lua中的table就非常适合作为一个对象,可以在table ...
- spring security method security
参考 Spring Security 官方文档 http://www.concretepage.com/spring/spring-security/preauthorize-postauthoriz ...
- Windows上x86程序正常但x64程序崩溃问题
先看下面代码: #include <stdio.h> #include <windows.h> #include <memory> class Test { pub ...
- 使用GIT进行源码管理——GIT托管服务
虽然GIT是分布式代码管理,但是仍然需要一个集中存储服务以实现团队协作和代码备份的.对于企业的私有代码来说,大多是自建GIT托管服务.但对于开源项目和个人的私有项目,往往是选择一个GIT托管网站,这样 ...
- JavaScript 常用算法
1.排序算法 (1)冒泡排序,冒泡排序其实就是通过比较相邻位置的元素大小,如果左边比右边大,就交换位置,继续比较,实际上就是每轮比较都得出一个最大值,然后通过多伦比较得出. function bubb ...
- B-F 字符串匹配算法
Brute-Froce 算法是串的匹配模式算法中的一种其匹配方式如下: 1.设有字符串 a ,b;a为主串,在 a 中查找 b 串的位置 2.匹配方式如下: 2.1: 分别从 a,b串的第一个元素开始 ...