WPF的System.Windows.Threading.DispatcherTimer的使用(每隔一定的时间重复做某事)
这里使用了一个进度条来展示,
前段代码:
1 <Window x:Class="TimerTest.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 Title="MainWindow" Height="350" Width="525"> 5 <Grid> 6 <Button Content="Button" HorizontalAlignment="Left" Margin="241,249,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/> 7 <ProgressBar x:Name="pb" Minimum="0" Maximum="100" HorizontalAlignment="Left" Height="93" Margin="10,151,0,0" VerticalAlignment="Top" Width="497"/> 8 9 </Grid> 10 </Window>
后台代码:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Windows; 7 using System.Windows.Controls; 8 using System.Windows.Data; 9 using System.Windows.Documents; 10 using System.Windows.Input; 11 using System.Windows.Media; 12 using System.Windows.Media.Imaging; 13 using System.Windows.Navigation; 14 using System.Windows.Shapes; 15 using System.Windows.Threading; 16 17 namespace TimerTest 18 { 19 /// <summary> 20 /// Interaction logic for MainWindow.xaml 21 /// </summary> 22 public partial class MainWindow : Window 23 { 24 public MainWindow() 25 { 26 InitializeComponent(); 27 } 28 29 private void Button_Click(object sender, RoutedEventArgs e) 30 { 31 DispatcherTimer dispatcherTimer = new DispatcherTimer(); 32 dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick); 33 dispatcherTimer.Interval = new TimeSpan(0, 0, 1); 34 dispatcherTimer.Start(); 35 } 36 37 private void dispatcherTimer_Tick(object sender, EventArgs e) 38 { 39 pb.Value += 3; 40 } 41 } 42 }