如何重置DispatcherTimer?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何重置DispatcherTimer?相关的知识,希望对你有一定的参考价值。

这些是DispatcherTimer的声明和方法:

private DispatcherTimer DishTimer;
private TimeSpan SpanTime;
private void InitTimer()
{

    DishTimer = new DispatcherTimer();
    DishTimer.Interval = new TimeSpan(0, 0, 0, 1);
    DishTimer.Tick += TimerOnTick;

}
private void TimerOnTick(object sender, object o)
{
    SpanTime = SpanTime.Add(DishTimer.Interval);
    Duration.DataContext = SpanTime;
}        

这就是我所说的:

private void CaptureButton_Click(object sender, RoutedEventArgs e)
{
    if ((string) CaptureButton.Content == "Capture")
    {

        CaptureAudio();
        InitTimer();
        DishTimer.Start();

        ProgressRing.IsActive = true;
        CaptureButton.Content = "Stop";
    }
    else
    {
        StopCapture();
        DishTimer.Stop();
        ProgressRing.IsActive = false;
        CaptureButton.Content = "Capture";
    }

}

这是我显示计时器的xaml代码:

<TextBlock Name="Duration" Text="{Binding}"  HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="24"></TextBlock>

我正在制作一个录音应用程序,我想每次用户按下捕获来显示计时器。我的问题是我无法重置它

答案

按下“捕获”按钮时,需要(重新)设置SpanTime。做就是了

SpanTime = new TimeSpan();

它应重置为零并重新开始,直到再次按下按钮。

另一答案

调用Stop()然后调用Start()应该重新启动Timer Interval。

以上是关于如何重置DispatcherTimer?的主要内容,如果未能解决你的问题,请参考以下文章

如何从片段外部清除/重置地图?

dotnet 读 WPF 源代码 聊聊 DispatcherTimer 的实现

如何在DispatcherTimer结束之前暂停for循环?

发生配置更改时如何不重置我的片段?

Android Studio - 选项卡式活动如何将片段重置为默认视图?

如何在 Django 中显式重置模板片段缓存?