我有一个WPF应用程序,它将在单击按钮时设置图像源
我想在经过这么多秒(例如,经过15秒)后清除图像源。
我怎样才能做到这一点?
我尝试使用Thread.sleep,但是它会立即清除源代码,然后将应用程序暂停15秒钟

这是我为那种方法所拥有的

 private void btnCapture_Click(object sender, RoutedEventArgs e)
 {
    imgCapture.Source = //my image source;

    Thread.Sleep(15000);
    imgCapture.Source = null;

 }

我也尝试过
 private void btnCapture_Click(object sender, RoutedEventArgs e)
  {
    imgCapture.Source = //my image source;


    imgCapture.Source = null;
     Thread thread = new Thread(new ThreadStart(clearSource));
        thread.Start();

  }

    private void clearSource()
    {
        Thread.Sleep(15000);
        imgCapture.Source = null;
    }

但是我收到一条错误消息,说调用线程无法访问该对象,因为另一个线程拥有它。
15秒后如何清除该图像源。
谢谢!

最佳答案

使用DispatcherTimer:

DispatcherTimer timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(15) };

    // in constructor
    timer.Tick += OnTimerTick;

private void btnCapture_Click(object sender, RoutedEventArgs e)
{
    imgCapture.Source = //my image source;
    timer.Start();
}

private void OnTimerTick(object sender, EventArgs e)
{
    timer.Stop();
    imgCapture.Source = null;
}

关于wpf - x秒后删除图像源,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14510982/

10-10 13:45