WPF樣式(Style)與模板(Template)

2021-06-06 22:17:56 字數 1447 閱讀 2691

一、wpf樣式

類似於web應用程式中的css,在wpf中可以為控制項定義統一的樣式(style)。樣式屬於資源的一種,例如為button定義統一的背景顏色和字型:

1:
2:
9:
10:
11:     button a
12:     button b
13:

從執行的結果上來看:

這種樣式,類似於css中的型別選擇器,為某種型別定義樣式。

此外還可以在style中加入x:key屬性,做為特定的樣式(注意,這種也需要定義targettype);定義時還可以基於已定義的某種樣式,例如,基於剛才的button的樣式,更改字型的大小及文字的前景及背景顏色:

1:
2:
9:
17:
18:
19:     button a
20:     button b
21:     button c
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:

二、控制項模板(controltemplate)

當使用乙個控制項時,如果控制項的屬性、方法、事件滿足程式的需求,但控制項的外觀不滿足要求的時候,除了自定義控制項這種方法外,我們還可以通過使用「控制項模板」的方式更改控制項的外觀。例如定義乙個圓形的按鈕:

1:
2:
32:
33:
34:
37:
38:     common button
39:

三、觸發器

值得注意的是,這個時候,對於此按鈕,無論是否獲得焦點、滑鼠是處於其上方,顯示的外觀均是相同的,如果要定義以上的一些效果,可以使用觸發器來實現。

style、controltemplate 和 datatemplate 都具有 triggers 屬性,該屬性可以包含一組觸發器。某個屬性值更改時,或某個事件引發時,觸發器會相應地設定屬性或啟動操作(如動畫操作)。

觸發器包含以下幾種:

我們這裡可以使用屬性觸發器來實現:

例如,在controltemplate中(即上段**28行前插入以下**):

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
當按鍵獲得鍵盤焦點時:

滑鼠在其上時:

**:

WPF樣式與模板

一 wpf樣式 style 類似於web應用程式中的css,在wpf中可以為控制項定義統一的樣式 style 樣式屬於資源的一種,例如為button定義統一的背景顏色和字型 button a button b 執行如下 從執行的結果上來看 在style中定義的屬性及值,影響到window中的所有型別...

WPF入門(六)樣式Style

wpf提供了一種類似css的物件 style,但是比css更強大。它支援直接設定屬性,更改呈現模板,觸發器,事件觸發等。msdn描述如下 msdn 可以在從 frameworkelement 或 frameworkcontentelement 派生的任何元素上設定 style。樣式通常在 resou...

WPF入門(六)樣式Style

wpf提供了一種類似css的物件 style,但是比css更強大。它支援直接設定屬性,更改呈現模板,觸發器,事件觸發等。msdn描述如下 msdn 可以在從 frameworkelement 或 frameworkcontentelement 派生的任何元素上設定 style。樣式通常在 resou...