WPF 图片跑马灯
1 public void OnFlushImage() 2 { 3 bool bStart = false; 4 while (mFlush == true) 5 { 6 if (bStart) 7 { 8 Thread.Sleep(1000); 9 continue; 10 } 11 12 bStart = true; 13 14 cloudTop.Dispatcher.BeginInvoke( 15 new Action(() => 16 { 17 Duration duration = new Duration(TimeSpan.FromMilliseconds(20000)); 18 DoubleAnimation daRx = new DoubleAnimation(); 19 daRx.Duration = duration; 20 daRx.To = 1300; 21 daRx.RepeatBehavior = RepeatBehavior.Forever; 22 23 cloudTop_tt.BeginAnimation(TranslateTransform.XProperty, daRx); 24 }), null); 25 26 Thread.Sleep(3000); 27 28 cloudBottom.Dispatcher.BeginInvoke( 29 new Action(() => 30 { 31 Duration duration = new Duration(TimeSpan.FromMilliseconds(10000)); 32 DoubleAnimation daRx = new DoubleAnimation(); 33 daRx.Duration = duration; 34 daRx.To = 1300; 35 daRx.RepeatBehavior = RepeatBehavior.Forever; 36 37 cloudBottom_tt.BeginAnimation(TranslateTransform.XProperty, daRx); 38 }), null); 39 } 40 41 // Stop 42 cloudTop.Dispatcher.BeginInvoke( 43 new Action(() => 44 { 45 Duration duration = new Duration(TimeSpan.FromMilliseconds(400)); 46 DoubleAnimation daRx = new DoubleAnimation(); 47 daRx.Duration = duration; 48 daRx.To = 1300; 49 50 cloudTop_tt.BeginAnimation(TranslateTransform.XProperty, daRx); 51 }), null); 52 53 cloudBottom.Dispatcher.BeginInvoke( 54 new Action(() => 55 { 56 Duration duration = new Duration(TimeSpan.FromMilliseconds(400)); 57 DoubleAnimation daRx = new DoubleAnimation(); 58 daRx.Duration = duration; 59 daRx.To = 1300; 60 61 cloudBottom_tt.BeginAnimation(TranslateTransform.XProperty, daRx); 62 }), null); 63 64 Thread.Sleep(1000); 65 66 // Origin 67 cloudTop.Dispatcher.BeginInvoke( 68 new Action(() => 69 { 70 Duration duration = new Duration(TimeSpan.FromMilliseconds(10)); 71 DoubleAnimation daRx = new DoubleAnimation(); 72 daRx.Duration = duration; 73 daRx.To = 0; 74 75 cloudTop_tt.BeginAnimation(TranslateTransform.XProperty, daRx); 76 }), null); 77 78 cloudBottom.Dispatcher.BeginInvoke( 79 new Action(() => 80 { 81 Duration duration = new Duration(TimeSpan.FromMilliseconds(10)); 82 DoubleAnimation daRx = new DoubleAnimation(); 83 daRx.Duration = duration; 84 daRx.To = 0; 85 86 cloudBottom_tt.BeginAnimation(TranslateTransform.XProperty, daRx); 87 }), null); 88 89 System.Diagnostics.Trace.WriteLine("Flush thread end."); 90 }