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...