更改timer.elapsed事件的图像可见性

时间:2013-06-06 14:24:26

标签: c# wpf timer visibility

我有这个代码使我的图像可见并启动计时器:

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工作并显示消息框。问题是图像保持可见。任何想法如何处理这个?谢谢。

2 个答案:

答案 0 :(得分:2)

试试这个:

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

不确定这对你来说是如何崩溃的,因为你的Thread可能不是主UI线程,这可能也阻碍了更新。

答案 1 :(得分:0)

添加到隐藏图像的控件的hideImage Refresh调用。