本來不打算寫這篇博,其實關于Silverlight中樣式很簡單但 又感覺這裡面東西雖少但很瑣碎,要用到地方還需要在回頭看.
Silverlight中通過使用樣式來控制控件感官效果,本質上和HTML元素定義樣式有些類似. 如果進行分類的話可以分成:
A:内置樣式
B:全局樣式
其實在Silverlight對樣式控制這塊沒有具體的分什麼内置和全局,主要是為了區分樣式的使用方式 才這麼叫友善使用者的了解
所謂的内置就是對單個XAML中元素直接在标簽中定義樣式屬性,内置樣式缺點在于它不可重用,額外的代碼使的XAML檔案頁面代碼容易和主題業務代碼混合,照成一定混亂,不推薦使用這種方式.
--内置樣式
<Button Content="測試Button" Canvas.Left="30" Canvas.Top="120" Height="25"
Foreground="Black"
Background="Azure"
FontSize="14"
>
</Button>
//從上面可以看出直接在标簽中定義
全局正好解決這個問題,可以使定義的樣式重用,而且是XAML檔案頁面代碼更加簡潔,隻需使用者專注于業務
--在App.xaml檔案中<ApplicationResource>節點中定義共用樣式
--定義樣式标簽<Style>
<Application.Resources>
<!--add the Application Resources-->
<!--Define the CSS Style About WebControllers-->
<Style x:Key="firstSty" TargetType="Button">
<Setter Property="FontSize" Value="15"></Setter>
<Setter Property="FontFamily" Value="微軟雅黑"></Setter>
<Setter Property="Foreground" Value="Red"></Setter>
<Setter Property="Background" Value="Silver"></Setter>
</Style>
<Style x:Key="secondSty" TargetType="Button">
<Setter Property="Foreground" Value="Black"></Setter>
<Setter Property="Background" Value="blue"></Setter>
</Application.Resources>
--<Style>标簽中X:key主要用來唯一表示樣式 TargetType:指定樣式作用的目标控件是什麼類型
--子節點<Setter> 通過Property和Value來設定具體的樣式屬性和值
在XAML頁面中引用:
<!--測試定義在App.xaml檔案中樣式定義-->
<Button Content="firsttext" Canvas.Left="30" Canvas.Top="120" Height="25"
Foreground="Black"
Background="Azure"
FontSize="14"
Style="{StaticResource firstSty}"
--通過标簽中Style屬性StaticResource标記句法來指定具體的樣式
注意問題:樣式定義沖突
--這是在App.XAML中定義的樣式
<Application.Resources>
</Application.Resources>
--XAML頁面中引用
<Button Content="firsttext" Canvas.Left="30" Canvas.Top="120" Height="25"
Style="{StaticResource firstSty}"
//在頁面引用中有再次定義了BackGround和FontSize屬性,這時标簽會從就近原則來樣式,就是以先取标簽内的屬性為主,然
//後在來檢視Style中的對外引用
那麼這樣BackGround顯示為Azure 而非App.XAML中定義的Silver(銀灰色)
本文轉自chenkaiunion 51CTO部落格,原文連結:http://blog.51cto.com/chenkai/765428