WPF學習心得(1) 資源

2021-05-12 22:57:06 字數 4203 閱讀 9137

wpf

學習心得(1

資源

wpf中的資源一般是指資源字典

(dictionaryresource)

中的元素,可以把任何物件置於其中以便訪問。

要獲得乙個資源字典,可以新建:

但更多的時候是通過

resources

屬性來獲得的:

整個應用程式有效

framewrokelement.resources//

該控制項及其子控制項有效

style.resources//

樣式中有效

我舉乙個較為複雜的例子:

是乙個frameworkelement

元素,實際上,在

wpf中,幾乎所有的控制項都是

frameworkelement

的派生,所以都有

resources

屬性。dictionaryresource

中的項需要乙個

key來區分不同的元素(在後面講到

style

的時候,會有乙個特例),而其

name

則是可有可無的。

我在資源字典中定義了三個資源,包括兩個

wpf中的物件

soildcolorbrush

和button

,以及乙個

clr物件浮點數,為了使用

clr中的型別,我事先引入了命名空間:

xmlns:s

="clr-namespace:system;assembly=mscorlib"

該示例中,我使用了

7種不同的方式建立了

7個按鈕,下面分別予以說明:

第一行:

<

button

background

=""/>

建立乙個

button

,並將其

background

屬性繫結到資源

scbrush

。其中大括號

{}表示這是乙個標記擴充套件;

staticresource

表示引入靜態資源,與之相對的,還有乙個

dynamicresource

,這兩者用法一樣,區別也不大,簡單地說,動態資源在執行時才繫結,並且當資源更改時可以發出通知,而且可以先使用,後宣告;

scbrush

是資源的鍵

該行實際上等價於

等二行:

<

button

background

="}"/>

也就是說,實際上是建立了乙個

binding

物件,並設定其

source

屬性為靜態資源

scbrush

第三行:

<

button

background

=",path

=background}"/>

這裡也是設定

background

屬性,但與之前的不同,這裡繫結的是乙個按鈕,而不是乙個畫刷,所以這裡用

path

屬性來指定其路徑

第四行:

<

button

background

=""/>

我們也可以用

name

而不是key

來訪問資源,這需要把

source

改為elementname

,另外,我還要告訴你,如果

path

是繫結中的第乙個物件,則可以省略

」path=」。

第五行:

<

button

height

=""/> 繫結

clr物件

第六行:

<

staticresource

resourcekey

="btnkey"/>

這是乙個迥然不同的語法,我沒有使用

binding

,而是直接嵌入資源。

這種語法也許十分罕見,以至於

visualstudio

都無法給出正確的智慧型感知,我也是反覆實驗出來的,切勿模仿!

(^_^)

第七行:

<

button

content

=""/>

原來繫結並不一定需要建立資源,你也可以通過

x:static

的語法來使用靜態屬性。

總結一下:

通常,每個繫結都具有四個元件:繫結目標物件、目標屬性、繫結源,以及要使用的繫結源中的值的路徑。

舉例如下:

<

button

background

=",path

=background}"/> 其中

button

為繫結目標物件,

background

為目標屬性,

btnkey(

或者btnname)

為繫結源,

path

為繫結源路徑。如何省略路徑,則認為繫結的是整個繫結源。

當然,還有許多與繫結相關的東西還沒有提到,比如繫結上下文、屬性通知等,大家自己去看吧。

WPF學習心得

1.關於控制項的賦值和取值 a.label 通過label.屬性可直接獲取,賦值只要將相應的值轉換為對應的格式即可。例如 cs score convert.toint32 lblscore.content 10 lblscore.content convert.tostring score b.下拉...

oracle學習心得 1

oracle 使用心得 剛開始使用oracle,把今天的學習心得小結一下。oracle 預裝之後會有一些預設的帳戶供使用,具有管理員許可權的可用 system manager 接下來熟悉了一下oracle基本命令 1 建表 舉例 sql create table mytable name chara...

jQuery學習心得(1)

經常見到jquery中的這種寫法 function jquery 許多前端工程師都只是照貓畫虎的這樣,卻不清楚為什麼這樣寫。其實這個寫法是函式定義立即呼叫的寫法之一。在js中,function在定義的時候就可以通過在後面加乙個小括號的形式立即進行呼叫。例如 function function fun...