文章目录
提示:以下是本篇文章正文内容,下面案例可供参考
<StackPanel Orientation="Horizontal" Height="40" >
<TextBox Width="200" Height="30" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Text="00:00:00" Name="Text111" FontSize="26"/>
<Button Width="150" Height="30" Margin="5,0" Click="Button_Click" FontSize="24">开始</Button>
<Button Width="150" Height="30" Margin="5,0" FontSize="24" Click="Button_Click_2">暂停</Button>
<Button Width="150" Height="30" Margin="5,0" FontSize="24" Click="Button_Click_1">停止</Button>
</StackPanel>
public partial class MainWindow : Window
{
enum State
{
Start, Pause, End
}
//状态
State _state=State.End;
//计时
TimeSpan _timeSpan=new TimeSpan(0,0,0,0);
public MainWindow()
{
InitializeComponent();
var t = new DispatcherTimer();
t.Interval = new TimeSpan(0, 0, 0, 1);
t.Tick += OnTimer;
t.IsEnabled = true;
t.Start();
}
//时钟回调
void OnTimer(object sender,EventArgs e)
{
switch(_state)
{
case State.Start:
{
_timeSpan += new TimeSpan(0, 0, 0, 1);
}
break;
case State.Pause:
{
}
break;
case State.End:
{
_timeSpan = new TimeSpan();
}
break;
}
var time = string.Format("{0:D2}:{1:D2}:{2:D2}", _timeSpan.Hours, _timeSpan.Minutes, _timeSpan.Seconds);
Text111.Text = time;
}
//停止
private void Button_Click_1(object sender, RoutedEventArgs e)
{
_state = State.End;
}
//开始
private void Button_Click(object sender, RoutedEventArgs e)
{
_state = State.Start;
}
private void Button_Click_2(object sender, RoutedEventArgs e)
{
_state = State.Pause;
}
}