WPF樣式與模板

2021-09-24 05:43:27 字數 1705 閱讀 3284

一、wpf樣式(style)

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

button a

button b

執行如下:

從執行的結果上來看:

• 在style中定義的屬性及值,影響到window中的所有型別為button的控制項的樣式

• 在button中可以新定義其他屬性(如foreground),覆蓋style中的定義(background)

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

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

button a

button b

button c

執行如下:

二、控制項模板(controltemplate)

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

二、控制項模板(controltemplate)

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

common button

執行如下:

三、觸發器(trigger)

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

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

觸發器包含以下幾種:

• 屬性觸發器

• eventtrigger 和 storyboard

• multitrigger、datatrigger 和 multidatatrigger

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

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

當按鍵獲得鍵盤焦點時:

滑鼠在其上時:

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

一 wpf樣式 類似於web應用程式中的css,在wpf中可以為控制項定義統一的樣式 style 樣式屬於資源的一種,例如為button定義統一的背景顏色和字型 1 2 9 10 11 button a12 button b13 從執行的結果上來看 這種樣式,類似於css中的型別選擇器,為某種型別定...

WPF資料模板樣式選擇器

在使用資料模板樣式選擇器時,不能設定itemcontainerstyle的屬性值,如果設定了該值,那麼資料模板樣式選擇器會失去作用。在使用資料模板樣式選擇器時,首先要建立資料模板樣式選擇器物件,此物件要重寫styleselector基類的selectstyle方法,並在方法中返回相應的樣式,cs 如...

WPF資料模板樣式選擇器

在使用資料模板樣式選擇器時,不能設定itemcontainerstyle的屬性值,如果設定了該值,那麼資料模板樣式選擇器會失去作用。在使用資料模板樣式選擇器時,首先要建立資料模板樣式選擇器物件,此物件要重寫styleselector基類的selectstyle方法,並在方法中返回相應的樣式,cs 如...