【问题标题】:Change image visibility on timer.elapsed event更改 timer.elapsed 事件上的图像可见性
【发布时间】:2013-06-02 14:43:04
【问题描述】:

我有这段代码可以让我的图像可见并启动计时器:

image1.Visibility = Visibility.Visible;
System.Timers.Timer timer = new System.Timers.Timer(2000) { AutoReset=false};
timer.Enabled = IsEnabled;
timer.Start();
timer.Elapsed += hideImage;

这是 2 秒后触发的事件:

private void hideImage(object sender, System.Timers.ElapsedEventArgs e)
{
    MessageBox.Show("test");
    image1.Visibility = Visibility.Hidden;
}

MessageBox.Show 工作并显示消息框。问题是图像仍然可见。任何想法如何处理这个?谢谢。

【问题讨论】:

  • 你关闭了MessageBox,不是吗?
  • 是的,我关闭了 MessageBox。

标签: c# wpf timer visibility


【解决方案1】:

试试这个:

private void hideImage(object sender, ElapsedEventArgs e) {
  Application.Current.Dispatcher.BeginInvoke((Action)(() => image1.Visibility = Visibility.Hidden));
}

不知道为什么这首先不会让你崩溃,因为你的线程可能不是主 UI 线程,这也可能是阻止更新的原因。

【讨论】:

    【解决方案2】:

    添加到 hideImage Refresh 调用保存图像的控件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-15
      • 2018-04-03
      • 2014-07-04
      • 2016-07-04
      • 1970-01-01
      • 2018-09-03
      • 2010-09-24
      • 2012-03-30
      相关资源
      最近更新 更多