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.pswp.cn/news/277718.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277718.shtml
英文地址,請注明出處:http://en.pswp.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;其中從小到大每一個二進制位 是…