天天看點

WPF基礎

WPF基礎

WPF的5種綁定模式(mode) WPF的綁定模式(mode)是枚舉的 枚舉值共有5個

1:OneWay(源變就更新目标屬性)

2:TwoWay(源變就更新目标并且目标變就更新源)

3:OneTime(隻根據源來設定目标,以後都不會變)

4:OneWayToSource(與OneWay相反)

5:Default(可以單向或雙向,是靠被值定的源或目标是否有get或set來指定的) 是以綁定的話是需要選上面5個中的一個模式的,根據你的需要來選擇,不選的話就會自 動選擇第五個的。

或者: 1:OneWay Source影響着Target,但是Target卻影響不到Source。 2:OneWayToSource Target影響Source,而Source卻影響不到Target。 3:TwoWay Source與Target互相影響。 4:OneTime 在OneWay的基礎上延伸了一個OneTime,僅綁定一次。如果大家屬性Jquery 中的one函數我想就可以不用表述了。

WPF Inspector是一個新的WPF輔助工具,我們可以通過這個工具來觀察WPF程式生成的邏輯樹與視 覺樹

WPF啟動程式的根元素均為Application 邏輯樹與XAML的布局結構是相同的 視覺樹是根據控件的模闆來呈現的,我們很難猜測視覺樹的結構,因為控件還可以自定義模闆 我們可以看到邏輯樹上的元素一個視覺樹局部元素的一個組合,比如Button,由三個元素組 成,ButtonChrome,ContentPresenter,TextBlock

與ASP.NET伺服器控件比較(控件為邏輯 樹,HTML為視覺樹) 如果你沒有接觸過ASP.NET的話,可以略過這部分. 如果你了解ASP.NET控件的話,那麼了解起來會更加容易. ASP.NET的伺服器控件是一個邏輯樹,一個伺服器控件由若幹的HTML組成,但我們知道我們是無法在 伺服器端知道HTML代碼的,即ASP.NET沒有視覺樹的概念. 這個應該比較容易了解吧。

與JavaScript用戶端控件比較(一個根邏輯 樹,HTML為視覺樹) 如果你用過jQuery等前端js庫的話,比如Tab的運用,一句簡單的話就可以建立一堆HTML出來,Tab本身 則是一個控件,但其本身沒有邏輯樹的概念 以上兩者是web伺服器端與用戶端的比較,由于兩者狀态無法共享,在互動方面沒有用戶端來的友善.所 以WPF的邏輯樹與視覺樹概念并不是新的概念.

為WPF建立一個新控件是非常簡單的,一般有以下兩種方式 1.采用使用者控件:

2.采用模闆:

<ContentControl.ContentTemplate>

</ContentControl.ContentTemplate>