自訂Silverlight控制項樣式

摘要:自訂Silverlight控制項樣式

類似於HTML裡的CSS,可透過一些屬性的值及Selector,達到網頁內樣式.風格的設定,

在Silverlight,我們同樣可以使用Style來宣告樣式並提供給網頁內的元素參考,Silverlight

允許我們直接將樣式或模板定義在XAML檔中,作為XAML的資源,設定樣式的內容會

包含在<XXX.Resources></XXX.Resources>或<XXX.Style></XXX.Style>的標籤內,

此為執行範例:

以一個Button為例,要自訂樣式,可在Button上按滑鼠右鍵,選擇Edit a Copy …,

接下來會看到底下這個視窗,上面的Name是定義這個Style的名稱,下面的Define in是設定此

樣式的使用範圍,

(1)若選擇Application,

樣式的內容會出現在App.xaml檔裡的<Application.Resources></Application.Resources>裡,

在此定義的樣式屬於全域樣式,整個Silverlight專案的XAML都可以參考的到

(2)若選擇This document,

則會依據此元件所在的類別產生資源標籤,若所在類別為UserControl,則樣式內容會出現在

<UserControl.Resources></UserControl.Resources>裡,在此定義的樣式屬於局部樣式,只有在此類別

的元件才能參考的到

(3)若選擇Resource dictionary,

可以自己新增一個XAML檔來存放樣式內容,樣式內容會出現在

<ResourceDictionary></ResourceDictionary>裡,同時

在App.xaml檔的<Application.Resources></Application.Resources>裡也會出現一個關聯至

資源字典XAML檔的ResourceDictionary標籤,故也屬於全域樣式

    

ResourceDictionary1.xaml :

App.xaml :

 

樣式新增後,它會建立一個元件的副本給你做修改,你可以刪去不需要的樣式內容,加入自己需要的內容,

自訂樣式時,可點選Objects and Timeline工作區底下的Template去做修改

 

知道如何建置樣式後,可以來看看樣式的相關屬性

Style的TargetType定義了此Style作用目標的類型;在控制項中可使用Style的Key值來參考這個樣式