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

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

绝对 pack WPF URI

pack://application:,,,/是协议;“,,,”是“///”的变体

1.资源文件 — 本地程序集

Uri uri = new Uri("pack://application:,,,/ResourceFile.xaml", UriKind.Absolute);

 

子文件夹中的资源文件 — 本地程序集(资源文件在本地程序集的子文件夹)

Uri uri = new Uri("pack://application:,,,/Subfolder/ResourceFile.xaml", UriKind.Absolute);

      

2.资源文件 — 所引用的程序集(资源文件在别的程序集)

Uri uri = new Uri("pack://application:,,,/ReferencedAssembly;component/ResourceFile.xaml", UriKind.Absolute);

 

3.所引用的程序集的子文件夹中的资源文件(资源文件别的程序的子文件夹)

Uri uri = new Uri("pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml", UriKind.Absolute);

 

4.所引用的版本化程序集中的资源文件(版本化在中间加入版本信息)

Uri uri = new Uri("pack://application:,,,/ReferencedAssembly;v1.0.0.0;component/ResourceFile.xaml", UriKind.Absolute);

 

综上:路径前部分是”pack://application;,,,/程序集名字;”;后半部分”component/路径“”;合起来是一个绝对路径;如果是本地程序集,程序集名字和compoent可以省略(;也省略掉)

 

WPF URI内容文件

1.Uri uri = new Uri("pack://application:,,,/ContentFile.xaml", UriKind.Absolute);

 

2.子文件夹中的内容文件

Uri uri = new Uri("pack://application:,,,/Subfolder/ContentFile.xaml", UriKind.Absolute);

 

3.源站点文件

Uri uri = new Uri("pack://siteoforigin:,,,/SOOFile.xaml", UriKind.Absolute);

 

4.子文件夹中的源站点文件

Uri uri = new Uri("pack://siteoforigin:,,,/Subfolder/SOOFile.xaml", UriKind.Absolute);

 

相对 pack URI      

1.WPF URI资源文件 — 本地程序集

Uri uri = new Uri("/ResourceFile.xaml", UriKind.Relative);

     

2.子文件夹中的资源文件 — 本地程序集

Uri uri = new Uri("/Subfolder/ResourceFile.xaml", UriKind.Relative);  

    

3.资源文件 — 所引用的程序集

Uri uri = new Uri("/ReferencedAssembly;component/ResourceFile.xaml", UriKind.Relative);

    

4.子文件夹中的资源文件 — 所引用的程序集

Uri uri = new Uri("/ReferencedAssembly;component/Subfolder/ResourceFile.xaml", UriKind.Relative);

                                                                                                                                

内容文件

Uri uri = new Uri("/ContentFile.xaml", UriKind.Relative);        

WPF URI子文件夹中的内容文件Uri uri = new Uri("/Subfolder/ContentFile.xaml", UriKind.Relative);

                                          特点:不用协议   

 

 

一、加载本项目的图片 WPF引入了统一资源标识Uri(Unified Resource Identifier)来标识和访问资源。 其中较为常见的情况是用Uri加载图像。Uri表达式的一般形式为:协议+授权+路径 协议:pack:// 授权:有两种。一种用于访问编译时已经知道的文件,用application:/// 一种用于访问编译时不知道、运行时才知道的文件,用siteoforigin:///
一般用逗号代替斜杠,也就是改写作application:,,,和pack:,,, 路径:分为绝对路径和相对路径。一般选用相对路径,普适性更强
下面,我们举一个简单的例子: pack://application:,,,/images/my.jpg 当然,WPF默认Uri设置有pack://application:,,,,所以我们也可以直接将其写作:/images/my.jpg
后边写例子程序时,为了让读者更好的了解Uri,我们都采用完整的Uri写法。 下面在讲讲装载图片的两种方式,一种用XAML引用资源,一种用代码引用资源。
用XAML引用资源:

<Image Source="pack://application:,,,/images/my.jpg"/>

 也可以这样

<Image Source="/images/my.jpg"/>

  用代码引用资源:

Image img;
img.Source=new BitmapImage(new Uri("pack://application:,,,/images/my.jpg"),UriKind.Relative);

  也可以直接使用代码中引用图片资源

image2.Source = new BitmapImage(new Uri("/images/my.jpg", UriKind.Relative));

  二、WPF 调用资源图片

imagePath = "pack://application:,,,/Solution;component/Properties/../images/star/my.jpg";
imageBrush.ImageSource = new BitmapImage(new Uri(imagePath, UriKind.RelativeOrAbsolute));

    三、WPF引用外部项目资源的方法 WPF中如果你使用的资源文件不是本程序集的,是另外的程序集,就可以这样做: 1.引用要用的程序集,pack://application:,,,/程序集名称;component/路径 ,其中pack://application:,,,可以省略 示例:

<Image Source="pack://application:,,,/Skin;component/image/you.png" />

 或者

<Image Source="/Skin;component/image/you.png" />

 
四、使用SiteOfOrigin

imgContent.Source = new BitmapImage(new Uri("pack://SiteOfOrigin:,,,/images/my.jpg"));

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277718.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac OS使用技巧十七:丰富多彩的花哨输入法

OSX Mavericks中的汉字输入功能&#xff0c;丝毫不逊色于windows&#xff0c;甚至提供了强大的手写输入功能和语音输入功能&#xff0c;并且发展到现在&#xff0c;已经有很多种第三方输入法支持Mac了。 一、基本的输入法首先说一下支持Mac的各种中文输入法&#xff0c;其实我觉…

语言-汉语:汉语

ylbtech-语言-汉语&#xff1a;汉语汉语&#xff0c;即汉族的传统语言&#xff0c;是中国通用语言&#xff0c;国际通用语言之一&#xff0c;属汉藏语系&#xff0c;与藏语、壮语、侗语、黎语、彝语、苗语、瑶语等都是亲属语言。汉语历史悠久&#xff0c;使用人数最多&#xff…

Duboo入门示例(Idea开发环境)

在学习Dubbo分布式框架时的官方入门例子&#xff0c;很有代表性。简单清晰。 有关Dubbo的概念、概述和简单的配置文件&#xff0c;可以看官方文档的简述 会很快对Duboo有个整体的概念。 准备工作: 下载示例&#xff0c;点击这里下载&#xff0c;建议用git管理。下载注册中心&am…

Mac OS使用技巧十八:Safari碉堡功能之一制作Widget

Safari的使用大家应该自己摸索就可以慢慢驾轻就熟&#xff0c;毕竟再高端也是个浏览器&#xff0c;从开始上网就要一直使用浏览器&#xff0c;Safari只是众多浏览器中的一个比较强大的罢了。下面给大家介绍一下Safari的一个碉堡隐藏功能!!!!&#xff08;其实不算隐藏啦。。。在…

CentOS 6.5 部署WordPress

1、安装环境: #yum install httpd mysql-server php php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc -y 2、配置mysql初始化密码: #mysqladmin -u root password ********** 2.1、mysql新建一个wordpress的表: create database wordpress; 3、启动服…

BZOJ1562: [NOI2009]变换序列(二分图 匈牙利)

Description Input Output Sample Input 5 1 1 2 2 1Sample Output 1 2 4 0 3HINT 30%的数据中N≤50&#xff1b;60%的数据中N≤500&#xff1b;100%的数据中N≤10000。 Source 这题是二分图应该不难看出来。 对于原序列中的一个点&#xff0c;对应两个可匹配的点。 关键是怎么…

Mac OS使用技巧十九:Safari碉堡功能之二查看网页源码

因为大三下的时候选修了搜索技术&#xff0c;了解了网络上搜索引擎和网络爬虫的信息扒取的一些东西&#xff0c;后来我们做了一个比较水的东西&#xff0c;就是只扒取了几家较大的下载网站几十个软件的评分下载量等信息&#xff0c;当用户输入一个程序名称&#xff0c;我们会根…

python文件打包发布(引用的包也可以加进来),打包出错解决了,运行出错解决了...

一开始&#xff0c;我以为&#xff0c;打包本来就很容易&#xff0c;可是没有。。。。。 没想到打包还能遇到坑 T.T 打包步骤&#xff1a; 1、安装 pyinstaller &#xff08;cmd&#xff09; pip install pyinstaller 2、进入目标文件所在文件夹&#xff0c;右键在此打开cmd py…

博客暂停通知-------10.1~11.24

博主在10月初到11月24号之间有对自己来说十分十分重要的事情&#xff0c;可以说是会影响我人生走向的事情。 所以我做出暂停更文章和回复的决定&#xff0c;这期间我基本不会来博客看了&#xff0c;希望如果留言未收到回复的博友或者吧友见谅。 我在贴吧发的一些帖子也暂时不会…

RabbitMQ系列(二)深入了解RabbitMQ工作原理及简单使用

RabbitMQ简介 在介绍RabbitMQ之前实现要介绍一下MQ&#xff0c;MQ是什么&#xff1f; MQ全称是Message Queue&#xff0c;可以理解为消息队列的意思&#xff0c;简单来说就是消息以管道的方式进行传递。 RabbitMQ是一个实现了AMQP&#xff08;Advanced Message Queuing Protoco…

四叶草社交平台——十天冲刺(10)

姑且就这样了&#xff0c;找了个新模板&#xff0c;这个模板先用来过关吧。转载于:https://www.cnblogs.com/limitCM/p/10925208.html

虚拟机(Visual Machine)的云平台的自动伸缩扩容(auto-scaling)技术

云计算平台中允许客户依据应用的负载进行云计算资源的弹性动态伸缩&#xff08;理想的情况是实现一个用多少付费多少的模型&#xff0c;最大限度地降低用户的运营成本&#xff09; 在进行讨论之前&#xff0c;先对几个名词进行定义 1&#xff09;客户&#xff1a;使用云服务的人…

Unity 3D学习笔记之一 界面介绍

因为学校的课程&#xff0c;本学期对Unity 3D有学习的要求&#xff0c;在博客中记录下自己的Unity学习之路&#xff08;内容摘录自书本和视频&#xff0c;书本为Unity 4.x从入门到精通&#xff09;一、Unity界面介绍首先进入Unity3D&#xff0c;在菜单栏&#xff0c;File中new …

Python 获得程序 exe 的版本号

Python 获得程序 exe 的版本号 python中需要安装 pywin32 包 # based on http://stackoverflow.com/questions/580924/python-windows-file-version-attribute from win32com.client import Dispatchdef get_version_via_com(filename):parser Dispatch("Scripting.FileS…

Coding and Paper Letter(一)

2019独角兽企业重金招聘Python工程师标准>>> 最近发现需要在快速阅读背景下&#xff0c;对快餐式资源做整理与收集。以Coding&#xff08;以Github&#xff09;和Paper&#xff08;自己看到的一些论文&#xff0c;论文一般主要看题目和摘要做些简单小结&#xff09;…

MacBook刷机勘错篇

前一段时间突然发现自己的MacBook已经好久没有刷过系统了&#xff0c;10.9用着还好&#xff0c;但bootcamp装的win8.1越来越卡&#xff0c;越用越慢。想要重做一下双系统&#xff0c;后来就演变成了两个系统一起更新&#xff0c;再后来就演变成了一个惨案。因为自己一直也没有使…

字典、列表、元组

1 字典2 Python内置的字典数据类型&#xff1a;全称dictionary&#xff0c;在其他语言中也称为map&#xff0c;使用键-值&#xff08;key-value&#xff09;存储&#xff0c;具有极快的查找速度3 4 当将key-value放进dict时&#xff0c;dict会根据key算出value要存放地址&#…

Sublime Text怎么快速建立一个html5页面模板

在编辑器中输入一个半角英文的感叹号&#xff08;!&#xff09;,然后按下TAB键

Mac OS X 10.10更新及体验

前一阵子&#xff0c;更新了Mac OS 10.10 Yosemite&#xff0c;总体用起来感觉还是很不错的&#xff0c;是很值得升级&#xff0c;相对于10.9 Mavericks优化了不少东西。我之前写的使用教程有一些也就不适用了&#xff1b;比如更换Dashboard中的背景&#xff0c;10.10中Dashboa…

快速幂学习笔记

啥是快速幂 快速幂&#xff0c;顾名思义&#xff0c;就是快速算某个数的多少次幂。其时间复杂度为 \(O(\log N)\)&#xff0c; 与朴素的\(O(N)\)相比效率有了极大的提高。 原理 来自学长&#xff1a; 我们可以把 \(b\) 分解成二进制数&#xff0c;其中从小到大每一个二进制位 是…