Silverlight 样式

来源:互联网 发布:2g手机能用4g网络吗 编辑:程序博客网 时间:2024/05/31 18:50

WPF 和 Silverlight 支持 Style 机制,它允许我们把控件的属性值封装成可重用的资源。我们可以把这些样式声明保存在独立于页面的其他文件中(当然本文件也可以),然后就可以在一个应用程序中跨控件和页面重用(甚至跨多个应用程序重用)。在做一些基本定制的场景下,概念上类似于在 HTML 中重用 CSS。

 

一个样式的简单例子

我们给一个园定义一个名叫 EllipseStyle1 的样式,然后应用这个样式。

Xaml 文件

<UserControlxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"x:Class="SilverlightApplication_Style.MainPage"Width="300" Height="300"><UserControl.Resources><Style x:Key="EllipseStyle1" TargetType="Ellipse"><Setter Property="Fill"><Setter.Value><LinearGradientBrush EndPoint="0.9,1" StartPoint="0.1,0.1"><GradientStop Color="#FF42B34A" Offset="0"/><GradientStop Color="#FFC03535" Offset="1"/>LinearGradientBrush>Setter.Value>Setter><Setter Property="Margin" Value="10,0,0,0"/><Setter Property="Cursor" Value="Hand"/><Setter Property="StrokeThickness" Value="20"/><Setter Property="VerticalAlignment" Value="Center"/><Setter Property="HorizontalAlignment" Value="Center"/>Style>UserControl.Resources><Grid x:Name="LayoutRoot" Background="White"><Ellipse Height="100" Width="100" Style="{StaticResource EllipseStyle1}" />Grid>UserControl>

效果图:

image

这里简单期间把样式跟控件放在一个文件中了, 实际我们还可以放在另外一个文件。

使用 Blend 设计样式时,我们会看得更清楚,

使用菜单在 对象 –> 编辑样式 –> 创建空项 打开创建 Style 资源时,我们就可以看到我们可以在多个地方保存样式:

image

之后在 Blend 中编辑时,可以在资源中选择对应的样式名字,然后如下图所示进行编辑:

编辑可以在属性窗口修改任何想修改的内容。

image

在编辑完毕后,在对象和时间线中,点击 image 按钮就可以回到正常状态。

image

参考资料:

Silverlight教程第四部分:使用 Style 元素更好地封装观感
http://blog.joycode.com/scottgu/archive/2008/02/29/114915.joy

一步一步学Silverlight 2系列(8):使用样式封装控件观感
http://www.cnblogs.com/Terrylee/archive/2008/03/08/Silverlight2-step-by-step-part8-styles.html

解说:Silverlight Style,Setter(XAML/Design)换肤机制
http://blog.csdn.net/bobby96333/archive/2008/10/22/3126363.aspx

Silverlight2 边学边练 之六 设定风格
http://www.cnblogs.com/gnielee/archive/2009/08/02/1537122.html

Silverlight 2 : 关于ListBox的一个Layout Bug及其解决方法
http://www.cnblogs.com/sun/archive/2009/03/04/1402648.html

Silverlight项目中"自定义控件开发/Style"学习笔记
http://www.cnblogs.com/yjmyzz/archive/2009/11/11/1600791.html

Quick Silverlight Tip: Define control style dynamically
http://blogs.microsoft.co.il/blogs/alex_golesh/archive/2008/09/09/quick-silverlight-tip-define-control-style-dynamically.aspx

原创粉丝点击