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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

WPF中的Pack URI

發布時間:2023/12/18 asp.net 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WPF中的Pack URI 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題

?說來也簡單:首先,我在WPF項目中建立了一個用戶自定義控件(CustomControl),VS模板為我們自動生成了

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

接著,我想把它移動到一個新的類庫(DLL)里去:

然后我添加了對類庫的引用在WPF項目中,我開始嘗試使用該自定義控件,結果,發現顯示的結果始終不對,但是也

沒有報錯。究其原因,肯定是xaml沒有加載到,致使界面沒有渲染模板。最后開始搜索MSDN,發現WPF應用程序外

部包引用一般使用pack://規范。

PACK URI

? ?表 1:標記中的絕對 Pack URI

文件

絕對 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"

內容文件

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

子文件夾中的內容文件

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

源站點文件

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

子文件夾中的源站點文件

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

?

? ? 表 2:標記中的相對 Pack URI

文件

相對 pack URI

本地程序集中的資源文件

"/ResourceFile.xaml"

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

"/Subfolder/ResourceFile.xaml"

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

"/ReferencedAssembly;component/ResourceFile.xaml"

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

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

內容文件

"/ContentFile.xaml"

子文件夾中的內容文件

"/Subfolder/ContentFile.xaml"

在代碼中使用 Pack URI

在代碼中,可以通過實例化?Uri?類并將 pack URI 作為參數傳遞給構造函數來指定 pack URI。?下面的示例說明了這一點。

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

?

默認情況下,Uri?類將 pack URI 視為絕對 pack URI。?因此,在使用相對 pack URI 創建?Uri?類的實例時會引發異常。

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

?

幸運的是,Uri?類構造函數的?Uri(String, UriKind)?重載可以接受一個類型為?UriKind?的參數,使您可以指定 pack URI 是絕對

URI 還是相對 URI。

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

?

當您能夠確定所提供的 pack URI 是相對 pack URI 還是絕對 pack URI 的時候,應該只指定?Absolute?或?Relative。?如果您不了解

所使用的 pack URI 的類型(例如,當用戶在運行時輸入 pack URI 時),請改用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。
另外,還有,為什么在普通類庫中右鍵添加新建項,沒有wpf 自定義控件選項,只能手動建,或者從WPF項目建立后移植過來。

轉載于:https://www.cnblogs.com/sjqq/p/6851690.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。