Silverlight中样式使用方式

2016-08-20 11:10:07来源:http://chenkai.blog.51cto.com/2023960/765428作者:chenkaiunion人点击


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


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


A:内置样式


B:全局样式


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


A:内置样式


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


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

B:全局样式


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


--在App.xaml文件中<ApplicationResource>节点中定义共用样式 --定义样式标签<Style> <Application.Resources> <!--addtheApplicationResources--> <!--DefinetheCSSStyleAboutWebControllers--> <Stylex:Key="firstSty"TargetType="Button"> <SetterProperty="FontSize"Value="15"></Setter> <SetterProperty="FontFamily"Value="微软雅黑"></Setter> <SetterProperty="Foreground"Value="Red"></Setter> <SetterProperty="Background"Value="Silver"></Setter> </Style><Stylex:Key="secondSty"TargetType="Button"> <SetterProperty="FontFamily"Value="微软雅黑"></Setter> <SetterProperty="FontSize"Value="15"></Setter> <SetterProperty="Foreground"Value="Black"></Setter> <SetterProperty="Background"Value="blue"></Setter> </Style></Application.Resources> --<Style>标签中X:key主要用来唯一表示样式TargetType:指定样式作用的目标控件是什么类型 --子节点<Setter>通过Property和Value来设置具体的样式属性和值

在XAML页面中引用:


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

注意问题:样式定义冲突



--这是在App.XAML中定义的样式 <Application.Resources> <!--addtheApplicationResources--> <!--DefinetheCSSStyleAboutWebControllers--> <Stylex:Key="firstSty"TargetType="Button"> <SetterProperty="FontSize"Value="15"></Setter> <SetterProperty="FontFamily"Value="微软雅黑"></Setter> <SetterProperty="Foreground"Value="Red"></Setter> <SetterProperty="Background"Value="Silver"></Setter> </Style> </Application.Resources> --XAML页面中引用 <ButtonContent="firsttext"Canvas.Left="30"Canvas.Top="120"Height="25" Background="Azure"FontSize="14"Style="{StaticResourcefirstSty}"> //在页面引用中有再次定义了BackGround和FontSize属性,这时标签会从就近原则来样式,就是以先取标签内的属性为主,然 //后在来查看Style中的对外引用 那么这样BackGround显示为Azure而非App.XAML中定义的Silver(银灰色)

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台