深入淺出WPF 資源

2021-10-04 18:00:32 字數 1197 閱讀 1976

wpf不但支援程式級的傳統資源,同時還推出了獨具特色的物件級資源,每個介面元素都可以攜帶自己的資源並可被自己的子級元素共享。

每個wpf的介面元素都具有乙個名為resources的屬性,這個屬性繼承自frameworkelement類,其型別為resourcesdictionary。resourcesdictionary能夠以鍵值對的形式儲存資源,當需要使用某個資源時,使用鍵值對可以索引到資源物件。在儲存資源時,resourcesdictionary視資源為object型別,所以在使用資源時先要對資源物件進行型別轉換,xaml編譯器能夠根據標籤的attribute自動識別資源型別,如果型別不對就會丟擲異常,但在c#**裡檢索到資源物件後,型別轉換的事情就只能由我們自己來做了。

當資源被儲存進資源字典後,我們通過使用兩種方式來使用這些資源——靜態方式和動態方式。靜態資源使用(staticresource)指的是在程式載入記憶體時對資源的一次性使用,之後就不會再去訪問這個資源了;動態資源使用(dynamicresources)指的是在程式執行過程中仍然會會去訪問資源。如果你確定某些資源只在程式初始化的時候使用一次、以後不會在改變,就應該使用staticresource,而程式過程中還有可能改變的資源應該以dynamicresource形式使用。

如果要新增的資源是字串而非檔案,可以使用應用程式properties命名空間中的resources.resx資源檔案。開啟資源檔案的方式是在專案管理器中展開properties節點並雙擊resources.resx。

resources.resx檔案內容的組織形式也是鍵值對,編譯後resources.resx會形成properties命名空間中的resources類,使用這個類的方法或屬性就能獲取資源。為了讓xaml編譯器能夠訪問這個類,一定要把resources.resx的訪問級別有internal改為public。利用資源檔案編輯器,可在資源檔案的字串組裡新增兩個條目,然後分別在xaml和c#**中訪問它們。

wpf對二進位制資源的訪問有自己的一套方法,稱為pack uri路徑。

在使用pack uri路徑時有幾點需要注意的:

(1)pack uri使用從右向左的正斜線(/)表示路徑。

(2)使用縮略寫法意味著是相對路徑,c#**中的urikind必須為relative而且代表根目錄的/可以省略。

(3)使用完整寫法時是絕對路徑,c#**中的urikind必須為absolute並且代表根目錄的/不能省略。

(4)使用相對路徑時可以借助類似dos的語法進行導航。

深入淺出WPF

深入淺出wpf 基本資訊 更有精彩樣張搶先試讀 試讀的第七章不錯 如果你想做程式設計師的話,就看看吧!非常實用!目錄 寫作緣起 wpf之what why 致謝 第一部分 深入淺出話xaml 第1章 xaml概覽 2 1.1 xaml是什麼 2 1.2 xaml的優點 3 第2章 從零起步認識xaml...

深入淺出WPF

深入淺出wpf 基本資訊 更有精彩樣張搶先試讀 試讀的第七章不錯 如果你想做程式設計師的話,就看看吧!非常實用!目錄 寫作緣起 wpf之what why 致謝 第一部分 深入淺出話xaml 第1章 xaml概覽 2 1.1 xaml是什麼 2 1.2 xaml的優點 3 第2章 從零起步認識xaml...

WPF深入淺出之我見

wpf的功能就是用來編寫應用程式的表示層,開發層技術並不算少,包括wpf,winform,asp.net,silverlight等.wpf技術則是微軟在開發理念上的一次公升級,由事件驅動變為資料驅動。事件驅動時代,使用者每進行乙個操作都會觸發乙個事件,事件發生後,用於響應事件的事件處理器就會執行。事...