WPF入門(六)樣式Style

2021-07-04 14:01:18 字數 3775 閱讀 3475

wpf提供了一種類似css的物件- style,但是比css更強大。它支援直接設定屬性,更改呈現模板,觸發器,事件觸發等。msdn描述如下:

msdn

可以在從 frameworkelement 或 frameworkcontentelement 派生的任何元素上設定 style。樣式通常在 resources 節內部宣告為資源。由於樣式是一種資源,它們遵循適用於所有資源的相同範圍規則,因此樣式的宣告位置將影響它的適用範圍。例如,如果在應用程式定義xaml 檔案的根元素中宣告樣式,則該樣式可在應用程式中的任何位置使用。如果您在建立導航應用程式時在該應用程式的乙個xaml 檔案中宣告了樣式,則該樣式只能在該xaml 檔案中使用。有關資源範圍規則的更多資訊,請參見

資源概述

。樣式宣告由 style 物件構成,該物件包含由乙個或多個 setter 物件組成的集合。每個 setter 都包含乙個 property 和乙個 value。屬性是樣式所應用於的元素的屬性名。將樣式宣告為資源後,就可以像引用任何其他資源一樣引用樣式。

使用 windows presentation foundation (wpf) 樣式和模板化模型不僅可以維護和共享外觀,還可以讓呈現與邏輯分離。樣式和模板化模型包括一套允許您自定義ui 的功能。這套功能包括 style 類以及下列元件:

下面**演示了 將button控制項顯示成圓形,設定背景色等。

1<

window x:class="

"2xmlns="

"3xmlns:x="

"4title="

window1

"height="

371"

width="

550"

>

5<

window.resources

>

6<

style targettype="

button

">78

<

setter property="

overridesdefaultstyle

"value="

true

"/>

9<

setter property="

background

"value="

lightblue

"/>

10<

setter property="

template

">

11<

setter.value

>

12<

controltemplate targettype="

button

">

13<

grid

>

14<

ellipse fill="

"/>

15<

contentpresenter horizontalalignment="

center"16

verticalalignment="

center

"/>

17grid

>

18controltemplate

>

19setter.value

>

20setter

>

21style

>

2223

<

style targettype="

button

"x:key="

btnstyle1

">

24<

setter property="

background

"value="

#66ff33

"/>

25style

>

2627

<

style targettype="

">

28<

setter property="

fontfamily

"value="

segoe black

"/>

29<

setter property="

horizontalalignment

"value="

center

"/>

30<

setter property="

fontsize

"value="

9pt"

/>

31<

setter property="

foreground

"value="

#333333

"/>

32<

setter property="

background

"value="

yellow

"/>

33style

>

3435

window.resources

>

36<

grid

>

37<

grid.columndefinitions

>

38<

columndefinition width="

277*

"/>

39<

columndefinition width="

251*

"/>

40grid.columndefinitions

>

41<

button height="

23"horizontalalignment="

left

"margin="

44,79,0,0

"name="

button1

"verticalalignment="

top"

width="

75">

button

button

>

42<

button style="

"height="

23"horizontalalignment="

right

"margin="

0,79,47,0

"name="

button2

"verticalalignment="

top"

width="

75">

button

button

>

43<

textblock margin="

75,140,93,156

"name="

textblock1

">

44wpf演示,style樣式

45textblock

>

46grid

>

47window

>48

注意 sytle 的作用域 targettype指定了style要適用到的「型別」,我們可以在這裡指向控制項。如果乙個style沒有 x:key 標記,那麼它將適用在它的作用域下的所有控制項型別。演示**第23行和42行演示了 顯式指定乙個style的用法,值得一提的是,「如果顯式的為乙個控制項指定了style ,那麼 這個style具有更高的優先權」。本例中第42行的button僅僅作用了乙個style,全域性的(第6行宣告的)style對它無效。

style的強大之處在這裡體現,他可以更改乙個控制項的controltemplate,本例中 將乙個矩形的button變成了橢圓。

本節完待續ing...

WPF入門(六)樣式Style

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

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

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

WPF 之 DataGrid 入門實踐三 樣式美化

net 對 ui 控制項提供了豐富的樣式設定屬性,但是當你不是很熟練或者長時間沒有使用後很容易忘記其樣式的屬性,這裡對常用的 datagrid 樣式設定做個筆記,以便日後查閱。datagrid 的檢視 xaml 以上是 datagrid 檢視的 類似於 html 其中binding屬性是資料繫結時使...