Dynamic Resource 動態資源

2021-09-25 23:42:11 字數 4196 閱讀 6209

dynamic resource –動態資源

static resource

不同的是,

dynamic resource

可以在程式執行時重新評估

/計算資源來生成對應的物件

/值,它支援向前引用,只要請求的

key在整個應用程式內的任何

resources dictionary

定義過就可以被載入。如果有多個相同的

key存在,則最後搜尋到的資源為有效。

動態資源常用於以下情況: ·

資源直到執行時才能被取定其值的。這些包含想系統資源,或者通過使用者互動

/使用者可以設定的值。例如你可以用

setter property

語法來引用一些系統資源像

systemcolors, systemfonts

等,這些是真正的

dynamic resource

,因為他們是來自使用者的執行環境。 ·

在custom control

中有建立

/引用主題風格的需求.

·在執行過程中調整(比如新增或者合併)

reourcedictionary. ·

需要向前引用的場景。 ·

建立的style

的值與當前使用者設定的主題或其他設定有關的。 ·

執行過程中可能更改邏輯樹的次序的。

下面的**片段演示了如何在

xaml

中引用systemfonts,

這需要用

dynamicresource

標記:

<

stylex:

key="******font"

targettype

="">

<

setter

property

= "fontsize"

value

= "}"/>

<

setter

property

= "fontweight"

value

= "}"/>

<

setter

property

= "fontfamily"

value

= "}"/>

style

>

dynamic resource

的查詢行為

·

首先遍歷請求物件本身定義的

resources

集合。

·然後遍歷邏輯樹上當前請求物件的父物件,直到遍歷到

root

(如page.reources, window.resources, usercontrol.resources等)

·隨後會遍歷應用程式的

resources(即

·進而會

check

當前啟用的

theme

的資源。 ·

最後才會去遍歷

system resources.

在程式中你可以通過

mywindow.resources[「key」]

的方式來直接訪問乙個資源。另外,

wpf還提供了

tryfindresource(key)

和findresource(key)

來支援資源搜尋。

findresource

方法在沒找到資源的情況下會觸發

resourcereferencekeynotfoundexception

異常。

其實通過上邊的示例我們可以很清楚的看到,在使用靜態資源的地方我們往往都可以使用動態資源,他們並沒有什麼合適與否之說,而選擇它們中的哪乙個,完全取決於你是否需要資源的使用者發現更新。我們可以再來比較一下二者的區別:

·對於資源的更新會反映在那些使用了動態資源的元素上,這是他們最主要的區別。 ·

window

或page

載入之後來引用,動態資源會改善載入時間。但靜態資源在使用時卻會有些許效能的提公升。

·動態資源只能設定依賴屬性只,而靜態資源可以在任何地方使用。比如,我們可以宣告乙個邏輯資源把它當作乙個元素來用,而動態資源卻無法做到:

<

windowx:

class

xmlns

=""xmlns:x

=""title

="window3"

height

="300"

width

="300">

<

window.resources

>

<

button

background

="blue"

margin

="5"

height

="28"x:

key="prev">

<

image

height

="21"

source

="images\previous.gif">

image

>

button

>

window.resources

>

<

grid

>

<

button

height

="20"

width

="70"

content

="content" />

<

staticresource

resourcekey

="prev" />

grid

>

window

>

dynamic resource –動態資源

static resource

不同的是,

dynamic resource

可以在程式執行時重新評估

/計算資源來生成對應的物件

/值,它支援向前引用,只要請求的

key在整個應用程式內的任何

resources dictionary

定義過就可以被載入。如果有多個相同的

key存在,則最後搜尋到的資源為有效。

動態資源常用於以下情況: ·

資源直到執行時才能被取定其值的。這些包含想系統資源,或者通過使用者互動

/使用者可以設定的值。例如你可以用

setter property

語法來引用一些系統資源像

systemcolors, systemfonts

等,這些是真正的

dynamic resource

,因為他們是來自使用者的執行環境。 ·

在custom control

中有建立

/引用主題風格的需求.

·在執行過程中調整(比如新增或者合併)

reourcedictionary. ·

需要向前引用的場景。 ·

建立的style

的值與當前使用者設定的主題或其他設定有關的。 ·

執行過程中可能更改邏輯樹的次序的。

下面的**片段演示了如何在

xaml

中引用systemfonts,

這需要用

dynamicresource

標記:

<

stylex:

key="******font"

targettype

="">

<

setter

property

= "fontsize"

value

= "}"/>

<

setter

property

= "fontweight"

value

= "}"/>

<

setter

property

= "fontfamily"

value

= "}"/>

style

>

MobileRead Links 移動閱讀資源鏈結

mobileread 所有與電子書和電子書閱讀器有關的資源 mobileread s kindle forum 所有與kindle有關的資源 visual kindle guide 乙個提供小建議 小技巧的wiki。kindle myths and partial truths kindle誤區和部...

智慧型媒資 solr

智慧型媒資 對solr中所有的資料進行重新整理 admin collections?action reload name metacore 刪除solr中所有的資料 由於智慧型媒資的同步工具觸發同步邏輯修改,目前是使用redis做為佇列來實現資源的同步,如果需要某條資源重新同步,可以呼叫以下介面來實...

loadrunner監控windows資源小結

loadrunner監控windows資源,被監控的windows要做好以下幾點準備工作。1.首先保證被監視的windows系統開啟以下二個服務remote procedure call rpc 和remote registry service。這兩項服務在 管理工具 下的 服務 2.被監視的win...