WEB开发网
开发学院图形图像Flash Silverlight图片公告栏正式版 阅读

Silverlight图片公告栏正式版

 2008-10-11 11:41:45 来源:WEB开发网   
核心提示: 自己动手制作一个图片切换动画也很容易,新建一个xaml文件,Silverlight图片公告栏正式版(3),在文件中加入一个Image,然后开始制作效果,PS:我只制作了3种切换效果,如果大家利用这个源码做了新的切换效果希望能和我交流一下,效果做好后就可以把Storyboard代码抄出来复制

自己动手制作一个图片切换动画也很容易,新建一个xaml文件,在文件中加入一个Image,然后开始制作效果。效果做好后就可以把Storyboard代码抄出来复制到Placard中。某些效果不只靠Storyboard就能实现的,Image也会有部分属性作了修改,由于Placard中的切换的图片是在后台代码添加的,所以我们需要按照新xaml中的图片属性来写后台代码。

随机动画切换图片代码

//随机切换图片效果

    private void RandomImageAnimation(int nextcurrent)
    {

//零时存放下一张图片,用于实现动画切换效果

      Image tmpImage = new Image();
      tmpImage.SetValue(Image.NameProperty, "tmpimage");
      tmpImage.Width = 260;
      tmpImage.Height = 195;
      tmpImage.Margin = new Thickness(0, 0, 0, 0);
      
      cTimer.Stop();
      tmpImage.Source = new BitmapImage(new Uri(pds[nextcurrent].imgurl, UriKind.Relative));      
      Random sbRandom = new Random();
      switch (sbRandom.Next(1, 4))
      {

case 1 :

//效果1:图片透明转换

          tmpImage.SetValue(OpacityMaskProperty, "#00000000");
          temp.Children.Add(tmpImage);
          ImageStoryboard1.Begin();
          break;

case 2:

//效果2:图片由左下开始往右上透明转换

          LinearGradientBrush lgb1 = new LinearGradientBrush();
          GradientStop gs1_1 = new GradientStop();
          GradientStop gs1_2 = new GradientStop();
          gs1_1.SetValue(GradientStop.ColorProperty, "#00000000");
          gs1_1.Offset = 0;
          gs1_2.SetValue(GradientStop.ColorProperty, "#FFFFFFFF");
          gs1_2.Offset = 1;
          lgb1.GradientStops.Add(gs1_1);
          lgb1.GradientStops.Add(gs1_2);
          tmpImage.OpacityMask = lgb1;          
          temp.Children.Add(tmpImage);          
          ImageStoryboard2.Begin();
          break;

case 3:

//效果3:图片以左上一个点为基点,透明+旋转转换

          LinearGradientBrush lgb2 = new LinearGradientBrush();
          GradientStop gs2_1 = new GradientStop();
          GradientStop gs2_2 = new GradientStop();
          gs2_1.SetValue(GradientStop.ColorProperty, "#00000000");
          gs2_2.SetValue(GradientStop.ColorProperty, "#FFFFFFFF");
          gs2_2.Offset = 1;
          lgb2.GradientStops.Add(gs2_1);
          lgb2.GradientStops.Add(gs2_2);
          lgb2.SetValue(LinearGradientBrush.StartPointProperty, "-0.384999990463257,0.0469999983906746");
           lgb2.SetValue(LinearGradientBrush.EndPointProperty, "-0.388000011444092,-0.527999997138977");
          tmpImage.OpacityMask = lgb2;
          temp.Children.Add(tmpImage);
          ImageStoryboard3.Begin();
          break;
      }
    }

在数字按钮变色处理上也作出了修改,图片轮显使相应的数字按钮也会变色,还有当鼠标指入Top区域时,轮显停止变换,详细的这些内容请查看源码。

PS:我只制作了3种切换效果,如果大家利用这个源码做了新的切换效果希望能和我交流一下,或者跟帖贴出代码。

上一页  1 2 3 

Tags:Silverlight 图片 公告栏

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接