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

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

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

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

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

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

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

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

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

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的更多相关文章

  1. WPF中的Pack URI

    更多资源:http://denghejun.github.io 问题 说来也简单:首先,我在WPF项目中建立了一个用户自定义控件(CustomControl),VS模板为我们自动生成了 CustomC ...

  2. 转:pack URI in WPF

    一开始看到WPF里面经常用如下语句来构造资源文件Uri: Uri uri = new Uri("/AssemblyName;component/image.png"); 我还以为这 ...

  3. WPF 中的 Pack URI地(资源文件加载)

    参考资源网http://msdn.microsoft.com/zh-cn/library/aa970069.aspx#Absolute_vs_Relative_Pack_URIs 在 Windows ...

  4. 资源文件加载(Pack URI 方案)

    Pack URI 在 Windows Presentation Foundation (WPF) 中,使用统一资源标识符 (URI) 标识和加载文件的方式有很多,包括:1.指定当应用程序第一次启动时显 ...

  5. [WPF]使用Pack URI路径訪问二进制资源

    一.路径格式定义 完整的URI定义为: pack://application,,,[/可选程序集名称;][可选版本;][目录名称/]文件名 缩略后的写法是: [目录名称/]文件名 二.在XAML代码中 ...

  6. 【转】【WPF】资源读取 URI

    一开始看到WPF里面经常用如下语句来构造资源文件Uri: Uri uri = new Uri("/AssemblyName;component/image.png"); 我还以为这 ...

  7. wpfのuri(让你完全明白wpf的图片加载方式以及URI写法)

    绝对 pack WPF URI pack://application:,,,/是协议:“,,,”是“///”的变体 1.资源文件 — 本地程序集 Uri uri = new Uri("pac ...

  8. WPF中的URI

    在 Windows Presentation Foundation (WPF) 中,使用统一资源标识符 (URI) 标识和加载文件的方式有很多,包括: 指定当应用程序第一次启动时显示的用户界面 (UI ...

  9. WPF之命名空间和资源

    1.参考: https://msdn.microsoft.com/zh-cn/library/ms747086(v=vs.110).aspx http://www.cnblogs.com/cww201 ...

随机推荐

  1. map、filter、reduce函数的使用

    1.filter() 作用:过滤 // 1.筛选出大于30的数. const array = [10, 20, 30, 40, 50, 60, 70, 80] // 普通写法 // let newar ...

  2. 用构造函数创建对象时,new的行为

    用构造函数创建对象: var obj=new 类型名(属性值,…) new: 4件事: 1. 创建一个空对象 2. 让新的子对象继承构造函数的原型对象设置(自动设置新对象的__proto__属性指向构 ...

  3. istio部署-sidecar注入

    参考 fleeto/sleep fleeto/flaskapp 1. Sidecar注入 1.1 对工作负载的一些要求 支持的工作负载类型:Job,DaemonSet,ReplicaSet,Pod,D ...

  4. 跟着ALEX 学python day5 模块

    文档内容学习于 http://www.cnblogs.com/xiaozhiqi/  模块 1.模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的pyt ...

  5. JDOJ 1946 求最长不下降子序列个数

    Description 设有一个整数的序列:b1,b2,…,bn,对于下标i1<i2<…<im,若有bi1≤bi2≤…≤bim 则称存在一个长度为m的不下降序列. 现在有n个数,请你 ...

  6. linux的cpu使用率

    linux 上一个核占满是 100%,双核机器占满整个 CPU 是 200%

  7. React组件简单介绍

    组件是 React 的核心,因此了解如何利用它们对于创建优秀的设计结构至关重要. 组件之间传递信息方式: 1.(父组件)向(子组件)传递信息 2.(子组件)向(父组件)传递信息 3.没有任何嵌套关系的 ...

  8. map的基本操作

    向map添加元素: 因为map是不允许出现重复关键字的,所以如果重复插入键相同的元素后面的元素是不会插入成功的,下面是一个验证程序: #include<iostream> #include ...

  9. MySQL实战45讲学习笔记:第二十八讲

    一.读写分离架构 在上一篇文章中,我和你介绍了一主多从的结构以及切换流程.今天我们就继续聊聊一主多从架构的应用场景:读写分离,以及怎么处理主备延迟导致的读写分离问题. 我们在上一篇文章中提到的一主多从 ...

  10. Zuul整合Swagger,使用ZuulFilter解决下游服务context-path

    问题起因:使用Zuul网关服务,需要整合下游系统的swagger,但是下游服务存在context-path配置,无法正确跳转,最后使用ZuulFilter解决. 1.Zuul整合下游swagger 首 ...