热门:网页模板.net视频教程JQueryMVCjsonExtJs源码示例三级联动JQuery菜单
您现在的位置:.Net中文社区>> Silverlight>>正文内容

SilverLight实例幻灯片效果(附源码实例)

发布时间:2009年03月31日点击数: 未知

这里将要介绍一个最简单的幻灯片程序,可以应用在Banner广告或图片播放。图片通过XML传递,配置非常方便。  源码下载

在这篇文章的代码里,我将配与非常详细的注释,希望能通过代码说明SL的一些问题。

那么就开始吧,先看看最终运行效果:

首先分析下界面的元素结构:

有按钮、半透明的按钮容器、图片控件

东西不多,先从按钮说起:

在工程里创建一个UserControl,命名为TiggerButton,并在XAML中写下如下代码TiggerButton XAML:

<Grid x:Name="LayoutRoot" MouseEnter="LayoutRoot_MouseEnter" MouseLeave="LayoutRoot_MouseLeave" Cursor="Hand">
<Rectangle  x:Name="BackGroundRec" Fill="White" RadiusY="4" RadiusX="4" Height="20" Width="45" StrokeThickness="1" Stroke="Blue" />
<TextBlock x:Name="tb_Number" VerticalAlignment="Center" HorizontalAlignment="Center" Text="1" FontSize="16"/>
</Grid>

上面代码中,最外层的Grid是自动生成的,它的作用是使得该控件中可以包含多个子元素,因为Grid继承Panel,默认属性是Children,所以可以直接把UIElement放入Grid中。在Grid中注册了MouseEnter和MouseLeave事件,这里的处理方法和Winform,ASP.NET是同出一辄的。

然后的Rectangle就是我们看见的矩形框,框四角的圆角,是由RadiusX和RadiusY指定的。StrokeThickness指定的是边框的宽度。

TextBlock的作用和我们在Winform里遇见的Label非常相似,用于输出字符串。而且Alignment属性也非常好用,直接就指定了该控件的位置,在这里由于没有指定按钮的文字,所以使用了垂直、水平居中。

TiggerButton 后台代码

以上代码中,Grid的MouseEnter事件和MouseLeave事件里把矩形框的不透明度设置为0.5和1,以提示按钮被选中。

另外,在整个用户控件里,我还注册了MouseLeftButtonDown事件,并在这个事件里转发我声明的选中事件。

按钮就这样完成了。

然后在工程里创建另一个用户控件:AD,并在XAML中写下如下代码:

AD XAML

上面的XAML中,描述了幻灯片的工作原理(两个图片控件不停变换透明装,并替换不同的图片),在按钮容器部分,我使用了StackPanel,就不需要对按钮的布局进行更多的控制了。

AD 后台代码

在播放动画的方法中,构造了个故事版,并把TimeLine对象添加进去。

在SL的动画中,有很多类型的TimeLine,这些TimeLine可以指定不同数据类型的变化动画。

在SetTargetProperty方法中,设置的必须是依赖属性。并且这个依赖属性必须是在后台声明的名称,类似

public static readonly DependencyProperty NumberProperty = DependencyProperty.Register("Number",
                                                                                               typeof(int),
                                                                                               typeof(TiggerButton),
                                                                                               new PropertyMetadata(1));

中的Number这个字符串。

XML的读取我就不再赘言了,不过要说明的是SL的运行环境中的XML对象模型,和普通的Framework对象模型完全不同,再也不能用XMLDocument之类的对象了。

本站热点业务

更多模板/案例展示

关于我们 | 联系我们 | 团队日志 | 网站地图 | 网站合作