Silverlight控件使用(三)制作数字时钟

来源:互联网 发布:淘宝兼职工资日结 编辑:程序博客网 时间:2024/06/06 01:04

      今天来看博客,发现昨天没有更新,感觉不可思议,明明昨晚写了,草稿箱里也找了还是没有,正纳闷呢忽然想起来了,昨晚感觉困的撑不住了,不知道怎么想的就把写好的都剪切到桌面一个TXT里了,无语。没办法,在平潭这里加班不由自己啊,可能当时是觉得有几个地方没有深入的了解一下,不能算结束所以没有发表,今天算补上吧。明后天就是可爱的周末了,哈哈,你懂的~

 

      前几天看到学习Silverlight需要注意的十件事情,其中就有要熟练的编写XAML代码,所以在制作时钟时我没有使用Blend,而是使用纯手工制作,希望能取得劳斯莱斯的效果,嘎嘎。

制作时钟本就是Silverlight SDK中的一个基础,也没有什么复杂的东西,把一下的代码复制几遍稍加修改就行了

 

<Ellipse Margin="310,0,250,150" Width="330" Height="330">

       <Ellipse.Fill>

              <LinearGradientBrush>

                    <GradientStop Color="White"/>

                    <GradientStop Color="Gray" Offset="0.5"/>

              </LinearGradientBrush>

       </Ellipse.Fill>

</Ellipse>

 

 

不过再简单的事情到了初学者手中总会碰到问题的:

第一就是中间加小圆圈的时候,

 

<Ellipse Margin="310,0,250,150" Width="30" Height="30" Stroke="Green" StrokeThickness="8">

        <Ellipse.Fill>

                <LinearGradientBrush>

                      <GradientStop Color="Black"/>

                      <!--<GradientStop Color="Gray" Offset="0.5"/>-->

                </LinearGradientBrush>

        </Ellipse.Fill>

</Ellipse>

 

 

Stroke是指圆圈外部的圆环,而里面的<GradientStop Color="White"/>才是圆圈最中间的颜色

这样一个外绿内黑的环就一步做好了,当然也可以用两个Ellipse来做。

 

 

当添加表针动画时,有几个要注意的地方

<Rectangle Margin="310,0,250,270" Fill="Green" Width="10" Height="80" RenderTransformOrigin="0.5,1.25">

            <Rectangle.RenderTransform>

                    <RotateTransform x:Name="secondTransform"/>

            </Rectangle.RenderTransform>

</Rectangle>

此处RenderTransformOrigin是指旋转的水平中心点和垂直中心点,0.5,1.0即以矩形的底边中心点为旋转轴的

 

 

动画时间的控制

 <DoubleAnimation x:Name="secondAnimation"

                             Storyboard.TargetName="secondTransform"

                             Storyboard.TargetProperty="Angle"

                             Duration="0:1:0" RepeatBehavior="Forever" To="360"/><!--秒针走一圈所需时间-->

 

                       Duration="1:0:0" RepeatBehavior="Forever" To="360"/><!--分针走一圈所需时间是一小时-->

 

                       Duration="12:0:0" RepeatBehavior="Forever" To="360"/><!--时针走一圈所需时间为12小时-->

 

Duration是指表示 Timeline 处于活动状态的持续时间。