Silverlight开发实践--My Silverlight Clock (源)

Silverlight是微软一个跨浏览器、跨客户平台的技术,能够设计、开发和发布有多媒体体验与富交互(RIA)的网络交互程序。

最近在花一部分时间学习Silverlight,虽然有时会遇到一些莫名其妙的错误,但是总的感觉还可以,它给我们带来的Rich Application真的很棒。值得一学!

我会将我学习到的成果分享给大家,希望能对大家有帮助,也希望和大家一起学习Sliverlight!

废话少说,今天带来的是用Silverlight作一个小的网页时钟。先看看最终的效果:

制作过程:

创建silverlight工程就不说了,直接说正题。

首先在页面中定义一个Canvas

Code

<Canvas x:Name="Show" W
idth="500" Height="600" Background="White">

接下来就是在其中创建我们的时钟界面,代码如下:

Code

<Ellipse Width="332" Height="322" Canvas.Left="81" Canvas.Top="119" Fill="#999b96" Opacity="0.4">Ellipse>

        <Ellipse Stroke="#f8e11b" x:Name="outerCircle" Width="332" Height="322" Canvas.Left="70" Canvas.Top="105">

            <Ellipse.Fill>

                <LinearGradientBrush EndPoint="0.196,0.127" StartPoint="0.852,0.814">

                    <GradientStop Color="#f8e11b" Offset="0.788">GradientStop>

                    <GradientStop Color="#f3ecb3" Offset="0.995">GradientStop>

                LinearGradientBrush>  

            Ellipse.Fill>

        Ellipse>

        

        <Ellipse Stroke="#eaa542" x:Name="inCircle" Width="271" Height="265" Canvas.Left="101" Canvas.Top="136">

            <Ellipse.Fill>

                <ImageBrush ImageSource="dog.jpg">ImageBrush>

            Ellipse.Fill>

        Ellipse>

        

        <Ellipse Fill="#f8e11b" Stroke="#7ebf25" StrokeThickness="7" Width="30" Height="30" Canvas.Left="224" Canvas.Top="
250">Ellipse>

        

        <Path x:Name="SecendHand" Stretch="Fill" Stroke="#FF0000" StrokeThickness="5" Width="71" Height="54" Canvas.Left="149" Canvas.Top="279" Data="M252,242 L298,183" RenderTransformOrigin="1.287,-0.266">

            <Path.RenderTransform>

                <RotateTransform Angle="125" x:Name="SecendTransform">RotateTransform>

            Path.RenderTransform>

        Path>

       

        <Path x:Name="MiniteHand" Stretch="Fill" Stroke="#008000" StrokeThickness="8" Width="71" Height="54" Canvas.Left="149" Canvas.Top="279" Data="M252,242 L298,183" RenderTransformOrigin="1.287,-0.266">

            <Path.RenderTransform>

                <RotateTransform Angle="125" x:Name="MiniteTransform">RotateTransform>

            Path.RenderTransform>

        Path>

      

        <Path x:Name="HourHand" Stretch="Fill" Stroke="#7ca4ef" StrokeThickness="10" Width="71" Height="40" Canvas.Left="149" Canvas.Top="279" Data="M252,242 L298,183" RenderTransformOrigin="1.287,-0.266">

        <Path.RenderTransform>

            <RotateTransform Angle="116.5" x:Name="HourTransform">RotateTransform>

        Path.RenderTransform>

    Path>

我作了一些简单的说明,值得一提的是其中的元素布局很不好弄,大家可以使用Bland等工具。其中使用了path的Data属性来定义时钟指针的位置和形状。M代表指针的起始点的绝对位置,L表示绘制线条。Data属性就是从某一坐标到另一坐标间画一条直线。

Code

<Path.RenderTransform>

                <RotateTransform Angle="125" x:Name="SecendTransform">RotateTransform>

            Path.RenderTransform>

是后面添加动画所用到的。

按F5运行一下,就会看到上面的外观效果。

有了clock的外观,接下来就是要让指针动起来。这里添加了时钟指针的动画:

Code

<Canvas.Triggers>

            <EventTrigger RoutedEvent="Canvas.Loaded">

                <EventTrigger.Actions>

                    <BeginStoryboard>

                        <Storyboard>

<DoubleAnimation x:Name="hourAnimation" Storyboard.TargetName="HourTransform" Storyboard.TargetProperty="Angle" From="180" To="540" Duration="12:0:0" RepeatBehavior="Forever">DoubleAnimation>

<DoubleAnimation x:Name="minuteAnimation" Storyboard.TargetName="MiniteTransform" Storyboard.TargetProperty="Angle" From="180" To="540" Duration="1:0:0" RepeatBehavior="Forever">DoubleAnimation>

<DoubleAnimation x:Name="secendAnimation" Storyboard.TargetName="SecendTransform" Storyboard.TargetProperty="Angle" From="180" To="540" Duration="0:1:0" RepeatBehavior="Forever">DoubleAnimation>

                        Storyboard>

                    BeginStoryboard>

                EventTrigger.Actions>

            EventTrigger>

        Canvas.Triggers>

好了,这样一个Silverlight时钟基本上就完成了。剩下的就是通过编程来控制时钟的正确运行:

1.根据当前时间初始化时钟的位置;2.根据时间的变化控制指针运行的位置。

Code

public 
Page()

        {

            InitializeComponent();

            System.DateTime date=DateTime.Now;//
获取当前时间

            //根据当前时间计算时针旋转的角度

            float houra

时间: 2024-10-26 12:48:40

Silverlight开发实践--My Silverlight Clock (源)的相关文章

Silverlight开发实践--My Silverlight Clock

Silverlight是微软一个跨浏览器.跨客户平台的技术,能够设计.开发和发布有多媒体体验与富交互(RIA)的网络交互程序. 最近在花一部分时间学习Silverlight,虽然有时会遇到一些莫名其妙的错误,但是总的感觉还可以,它给我们带来的Rich Application真的很棒.值得一学! 我会将我学习到的成果分享给大家,希望能对大家有帮助,也希望和大家一起学习Sliverlight! 废话少说,今天带来的是用Silverlight作一个小的网页时钟.先看看最终的效果:

Silverlight开发实践--PicZoomShow

老师最近让做个小研究,其中有一部分是实现图片的缩放功能,由于要在Web中实现,silverlight在图形图像处理方面有很强的支持功能,索性就研究了一下,弄了个小Demo,分享给大家.还有些疑问向高手请教,先看下效果: 开发实践--PicZoomShow-show cover pic">

Silverlight开发实践--My Album(源)

Silverlight是微软一个跨浏览器.跨客户平台的技术,能够设计.开发和发布有多媒体体验与富交互(RIA)的网络交互程序. 最近在花一部分时间学习Silverlight,虽然有时会遇到一些莫名其妙的错误,但是总的感觉还可以,它给我们带来的Rich Application真的很棒.值得一学! 我会将我学习到的成果分享给大家,希望能对大家有帮助,也希望和大家一起学习Sliverlight! 今天和大家分享的是一个图片相册,功能很简单,SL高手见笑啦!效果如下:

Silverlight开发实践--Get Data By WCF

实际的开发中,我们会经常的和数据库打交道.今天给大家带来的就是在silverlight中通过WCF同数据库进行交互.本人是菜鸟,高手见笑. 具体的代码我就不贴出来了,主要说说制作中遇到的困难和大家值得借鉴的东西. 1)WCF的使用 在添加WCF服务的时候,VS2008默认在Web.config中<endpoint address="" binding="wsHttpBinding "contract="ISLGetDataWCF">b

Silverlight企业应用开发实践-AgileEAS.NET平台5.0 Silverlight支撑预览

一.AgileEAS.NET平台简介 AgileEAS.NET平台是一套应用系统快速开发平台,用于帮助中小软件开发商快速构建自己的企业信息管理类开发团队,以达到节省开发成本.缩短开发时间,快速适应市场变化的目的,AgileEAS.NET应用开发平台包含基础类库.资源管理平台.运行容器.开发辅助工具等四大部分,资源管理平台为敏捷并行开发提供了设计.实现.测试等开发过程的并行. AgileEAS.NET平台基于软件过程改进以及构件化快速开发两方面达到这方面的目标,在软件过程改进实践方面,提出了独有的

ArcGIS API for Silverlight开发入门

你用上3G手机了吗?你可能会说,我就是喜欢用nokia1100,ABCDEFG跟我 都没关系.但你不能否认3G是一种趋势,最终我们每个人都会被包裹在3G网络中.1100也不是一成不变,没准哪天为了打击犯罪,会在你的1100上强制 装上GPS.GIS工作既然建立在计算机的基础上,当然也得随着IT行业与时俱进.       看看现在计算机应用的趋势吧.云(计算),这个东西可讲不清楚,因为云嘛,飘忽不定的.不过可以这样来看它,以后计算机网络上就有一坨(或者几坨)万能的 云,有什么需求云都可以满足我们,

基于Cairngorm的Silverlight开发 - part5

搭建完整的Cairngorm项目 到这里已经都知道了如何独立的运用Cairngorm中两个特殊的部分,ModelLocator模型和View视图,现在需要的就是建立一个完成的Cairngorm项目了.之前只用到了一种设计模式ModelLocator的单件模式,现在要用到了另一种设计模式命令模式,这个模式也是Cairngorm的核心部分. 一个Cairngorm项目一般是这个样子: 一个Page.xaml -(***.xaml.cs这里我就都不提了)程序的入口 一个App.xaml -用来存放Si

用Visual Studio 2008进行Silverlight开发

微软的Silverlight浏览器插件使得开发者能够运行富因特网程序(RIAs)--包括动画, 矢量图形和视频回放等等.看看如何进行Silverlight开发,并且感受一下这种新的开发方式 吧! 经过多年发展,我们看到了Web应用程序的繁荣.早期的Web站点仅仅支持静态的HTML页面 ,图片和文字信息.然后,服务器端技术如CGI,ASP和JSP等使得Web硬哟程序变成了现实, 用户突然可以在Web上做很多事情了,比如在线购买商品,预订等等.客户端技术如 Javascript等帮助提高了用户的We

ArcGIS API for Silverlight开发入门准备

原文:ArcGIS API for Silverlight开发入门准备          微软的Silverlight提供了跨浏览器和跨平台开发环境,在Web中可用于创建和展现富互联网应用(RIA,Rich  Internet Application).          ArcGIS API for Silverlight 能够让的Silverlight应用程序具有集成ArcGIS Server.ESRI MapIt和Bing Maps服务的能力.利用 ArcGIS Server 和Bing