日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

WPF中的Pack URI

發(fā)布時(shí)間:2023/12/18 asp.net 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WPF中的Pack URI 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問題

?說來也簡(jiǎn)單:首先,我在WPF項(xiàng)目中建立了一個(gè)用戶自定義控件(CustomControl),VS模板為我們自動(dòng)生成了

CustomControl1和Theme文件夾(里邊包含一個(gè)Generic.xaml):

接著,我想把它移動(dòng)到一個(gè)新的類庫(kù)(DLL)里去:

然后我添加了對(duì)類庫(kù)的引用在WPF項(xiàng)目中,我開始嘗試使用該自定義控件,結(jié)果,發(fā)現(xiàn)顯示的結(jié)果始終不對(duì),但是也

沒有報(bào)錯(cuò)。究其原因,肯定是xaml沒有加載到,致使界面沒有渲染模板。最后開始搜索MSDN,發(fā)現(xiàn)WPF應(yīng)用程序外

部包引用一般使用pack://規(guī)范。

PACK URI

? ?表 1:標(biāo)記中的絕對(duì) Pack URI

文件

絕對(duì) pack URI

資源文件 — 本地程序集

"pack://application:,,,/ResourceFile.xaml"

子文件夾中的資源文件 — 本地程序集

"pack://application:,,,/Subfolder/ResourceFile.xaml"

資源文件 — 所引用的程序集

"pack://application:,,,/ReferencedAssembly;component/ResourceFile.xaml"

所引用的程序集的子文件夾中的資源文件

"pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml"

所引用的版本化程序集中的資源文件

"pack://application:,,,/ReferencedAssembly;v1.0.0.0;component/ResourceFile.xaml"

內(nèi)容文件

"pack://application:,,,/ContentFile.xaml"

子文件夾中的內(nèi)容文件

"pack://application:,,,/Subfolder/ContentFile.xaml"

源站點(diǎn)文件

"pack://siteoforigin:,,,/SOOFile.xaml"

子文件夾中的源站點(diǎn)文件

"pack://siteoforigin:,,,/Subfolder/SOOFile.xaml"

?

? ? 表 2:標(biāo)記中的相對(duì) Pack URI

文件

相對(duì) pack URI

本地程序集中的資源文件

"/ResourceFile.xaml"

本地程序集的子文件夾中的資源文件

"/Subfolder/ResourceFile.xaml"

所引用的程序集中的資源文件

"/ReferencedAssembly;component/ResourceFile.xaml"

所引用的程序集的子文件夾中的資源文件

"/ReferencedAssembly;component/Subfolder/ResourceFile.xaml"

內(nèi)容文件

"/ContentFile.xaml"

子文件夾中的內(nèi)容文件

"/Subfolder/ContentFile.xaml"

在代碼中使用 Pack URI

在代碼中,可以通過實(shí)例化?Uri?類并將 pack URI 作為參數(shù)傳遞給構(gòu)造函數(shù)來指定 pack URI。?下面的示例說明了這一點(diǎn)。

Uri uri = new Uri("pack://application:,,,/File.xaml");

?

默認(rèn)情況下,Uri?類將 pack URI 視為絕對(duì) pack URI。?因此,在使用相對(duì) pack URI 創(chuàng)建?Uri?類的實(shí)例時(shí)會(huì)引發(fā)異常。

Uri uri = new Uri("/File.xaml");

?

幸運(yùn)的是,Uri?類構(gòu)造函數(shù)的?Uri(String, UriKind)?重載可以接受一個(gè)類型為?UriKind?的參數(shù),使您可以指定 pack URI 是絕對(duì)

URI 還是相對(duì) URI。

// Absolute URI (default) Uri absoluteUri = new Uri("pack://application:,,,/File.xaml", UriKind.Absolute); // Relative URI Uri relativeUri = new Uri("/File.xaml", UriKind.Relative);

?

當(dāng)您能夠確定所提供的 pack URI 是相對(duì) pack URI 還是絕對(duì) pack URI 的時(shí)候,應(yīng)該只指定?Absolute?或?Relative。?如果您不了解

所使用的 pack URI 的類型(例如,當(dāng)用戶在運(yùn)行時(shí)輸入 pack URI 時(shí)),請(qǐng)改用RelativeOrAbsolute。

// Relative or Absolute URI provided by user via a text box TextBox userProvidedUriTextBox = new TextBox(); Uri uri = new Uri(userProvidedUriTextBox.Text, UriKind.RelativeOrAbsolute);

?



SO,外部資源文件,比如視頻、圖片等,路徑的引用都需要使用pack uri。
另外,還有,為什么在普通類庫(kù)中右鍵添加新建項(xiàng),沒有wpf 自定義控件選項(xiàng),只能手動(dòng)建,或者從WPF項(xiàng)目建立后移植過來。

轉(zhuǎn)載于:https://www.cnblogs.com/sjqq/p/6851690.html

總結(jié)

以上是生活随笔為你收集整理的WPF中的Pack URI的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。