本来不打算写这篇博,其实关于Silverlight中样式很简单但 又感觉这里面东西虽少但很琐碎,要用到地方还需要在回头看.

Silverlight中通过使用样式来控制控件感官效果,本质上和HTML元素定义样式有些类似. 如果进行分类的话可以分成:

A:内置样式

B:全局样式

其实在Silverlight对样式控制这块没有具体的分什么内置和全局,主要是为了区分样式的使用方式 才这么叫方便用户的理解

A:内置样式

所谓的内置就是对单个XAML中元素直接在标签中定义样式属性,内置样式缺点在于它不可重用,额外的代码使的XAML文件页面代码容易和主题业务代码混合,照成一定混乱,不推荐使用这种方式.

Silverlight中样式使用方式 --内置样式
Silverlight中样式使用方式 
<Button Content="测试Button" Canvas.Left="30" Canvas.Top="120" Height="25" 
Silverlight中样式使用方式            Foreground
="Black"
Silverlight中样式使用方式            Background
="Azure"
Silverlight中样式使用方式            FontSize
="14"
Silverlight中样式使用方式            
>
Silverlight中样式使用方式            
Silverlight中样式使用方式            
</Button>
Silverlight中样式使用方式  
//从上面可以看出直接在标签中定义

B:全局样式

全局正好解决这个问题,可以使定义的样式重用,而且是XAML文件页面代码更加简洁,只需用户专注于业务

  
   <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="FontFamily" Value="微软雅黑"></Setter>
            
<Setter Property="FontSize" Value="15"></Setter>
            
<Setter Property="Foreground" Value="Black"></Setter>
            
<Setter Property="Background" Value="blue"></Setter>
        
</Style>
        
    
</Application.Resources>

--<Style>标签中X:key主要用来唯一表示样式  TargetType:指定样式作用的目标控件是什么类型
--子节点<Setter> 通过Property和Value来设置具体的样式属性和值  

在XAML页面中引用:

Silverlight中样式使用方式  <!--测试定义在App.xaml文件中样式定义-->
Silverlight中样式使用方式            
<Button Content="firsttext" Canvas.Left="30" Canvas.Top="120" Height="25" 
Silverlight中样式使用方式             Foreground
="Black"
Silverlight中样式使用方式             Background
="Azure"
Silverlight中样式使用方式             FontSize
="14"
Silverlight中样式使用方式             Style
="{StaticResource firstSty}"
Silverlight中样式使用方式            
>
Silverlight中样式使用方式            
Silverlight中样式使用方式            
</Button>
Silverlight中样式使用方式   
--通过标签中Style属性StaticResource标记句法来指定具体的样式

注意问题:样式定义冲突

 


        <!--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>

 
</Application.Resources>

--XAML页面中引用
<Button Content="firsttext" Canvas.Left="30" Canvas.Top="120" Height="25" 
            Background
="Azure"
            FontSize
="14"
            Style
="{StaticResource firstSty}"
            
>

//在页面引用中有再次定义了BackGround和FontSize属性,这时标签会从就近原则来样式,就是以先取标签内的属性为主,然
//后在来查看Style中的对外引用

那么这样BackGround显示为Azure 而非App.XAML中定义的Silver(银灰色)

相关文章: