ITPub博客

首页 > IT职业 > IT生活 > sliverlight:按点击移动的连续跑马灯

sliverlight:按点击移动的连续跑马灯

IT生活 作者:snoopygod 时间:2021-09-09 09:15:13 0 删除 编辑


思路:
1.利用StoryBoard产生移动,每次点击时,该动画播放一次(即移动一格)
2.关键:动画播放完毕后,调用Stop方法,以回到初始位置,同时利用代码重新填充数据,造成"保留移动后位置"的视觉假象

Xaml代码:
图片描述图片描述Xaml
 1图片描述
 2图片描述        
 3图片描述            
 4图片描述                
 5图片描述            

 6图片描述            
 7图片描述                
 8图片描述            

 9图片描述            
10图片描述                
11图片描述            

12图片描述            
13图片描述                
14图片描述            

15图片描述            
16图片描述                
17图片描述            

18图片描述        

19图片描述    

20图片描述
21图片描述    
22图片描述        
23图片描述            
24图片描述                
25图片描述                    
26图片描述                    
27图片描述                    
28图片描述                    
29图片描述                

30图片描述            

31图片描述            
32图片描述        

33图片描述        
34图片描述            
35图片描述                
36图片描述                    
37图片描述                    
38图片描述                    
39图片描述                    
40图片描述                

41图片描述            

42图片描述            
43图片描述        

44图片描述        
45图片描述            
46图片描述                
47图片描述                    
48图片描述                    
49图片描述                    
50图片描述                    
51图片描述                

52图片描述            

53图片描述            
54图片描述        

55图片描述        
56图片描述            
57图片描述                
58图片描述                    
59图片描述                    
60图片描述                    
61图片描述                    
62图片描述                

63图片描述            

64图片描述            
65图片描述        

66图片描述        
67图片描述            
68图片描述                
69图片描述                    
70图片描述                    
71图片描述                    
72图片描述                    
73图片描述                

74图片描述            

75图片描述            
76图片描述        

77图片描述        
78图片描述        
79图片描述        
80图片描述    

81图片描述    
82图片描述    

Xaml.cs
图片描述图片描述Xaml.cs
 1图片描述using System;
 2图片描述using System.Collections.Generic;
 3图片描述using System.Windows.Controls;
 4图片描述using System.Windows.Media;
 5图片描述
 6图片描述namespace ClipTest
 7图片描述图片描述图片描述{
 8图片描述    public partial class Marquee : UserControl
 9    图片描述{
10图片描述
11图片描述        public List listSrc;
12图片描述
13图片描述        int _currentIndex = 0;//初次加载时,从listSrc的第几项开始
14图片描述
15图片描述        public Marquee()
16        图片描述{           
17图片描述            InitializeComponent();
18图片描述            this.sb_move.Completed += new EventHandler(sb_move_Completed);
19图片描述            LoadData();
20图片描述            SetData();
21图片描述        }

22图片描述
23图片描述
24        /// 


25图片描述        /// 加载源数据(需要调用外部数据的朋友,可自行修改本函数为远程加载xml之类)
26图片描述        /// 

27图片描述        public void LoadData()
28        图片描述{
29图片描述            this.listSrc = new List();
30            this.listSrc.Add(new MarqueeItem() 图片描述{ ItemColor = Color.FromArgb(0xFF, 0x9A, 0xCD, 0x32), ItemText = "1" });
31            this.listSrc.Add(new MarqueeItem() 图片描述{ ItemColor = Color.FromArgb(0xFF, 0xFF, 0xFF, 0x00), ItemText = "2" });
32            this.listSrc.Add(new MarqueeItem() 图片描述{ ItemColor = Color.FromArgb(0xFF, 0xF5, 0xF5, 0xF5), ItemText = "3" });
33            this.listSrc.Add(new MarqueeItem() 图片描述{ ItemColor = Color.FromArgb(0xFF, 0xF5, 0xF5, 0xDC), ItemText = "4" });
34            this.listSrc.Add(new MarqueeItem() 图片描述{ ItemColor = Color.FromArgb(0xFF, 0xFF, 0x20, 0xFF), ItemText = "5" });
35图片描述        }

36图片描述
37图片描述
38图片描述        public void SetData()
39        图片描述{
40图片描述            int _start = _currentIndex % listSrc.Count;
41图片描述
42图片描述            for (int i = 1; i 43            图片描述{
44                if (_start >= listSrc.Count) 图片描述{ _start = 0; }
45图片描述                (c.FindName("b" + i.ToString()) as Border).Background = new SolidColorBrush(listSrc[_start].ItemColor);
46图片描述                (c.FindName("txt" + i.ToString()) as TextBlock).Text = listSrc[_start].ItemText;
47图片描述                _start++;
48图片描述            }

49图片描述        }

50图片描述
51图片描述        void sb_move_Completed(object sender, EventArgs e)
52        图片描述{
53图片描述           
54图片描述            this.sb_move.Stop();
55图片描述            _currentIndex++;
56图片描述            SetData();
57图片描述            
58图片描述        }

59图片描述
60图片描述        private void Canvas_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
61        图片描述{
62图片描述            // TODO: Add event handler implementation here.
63图片描述            this.sb_move.Begin();
64图片描述        }

65图片描述    }
66图片描述
67图片描述
68    /// 
69图片描述    /// 自定义Item类
70图片描述    /// 

71图片描述    public class MarqueeItem
72    图片描述{
73        public Color ItemColor 图片描述{ set; get; }
74        public String ItemText 图片描述{ set; get; }
75图片描述    }

76图片描述
77图片描述}

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2752/viewspace-2801285/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-16

  • 博文量
    93
  • 访问量
    840