【发布时间】:2018-01-20 07:12:42
【问题描述】:
我希望我的 WPF 应用程序在显示图像之前显示 3 秒倒计时,使用计时器根据经过的三秒显示“3、2、1”计数(意味着使用计时器更新 UI)等待显示图像,直到三秒钟过去(意味着让方法等待)。
在伪代码中,我正在尝试执行以下操作:
- 显示 3,然后过了一秒
- 显示 2,然后过了一秒
- 显示 1,然后过了一秒
- 图像显示
我正在尝试使用 System.Timers.Timer,例如:
...
public int Countdown = 3;
...
private void UpdateCountdown(object source, EventArgs e)
{
Countdown--;
}
public void DoStuff()
{
Timer timer = new Timer();
timer.Interval = 1000;
timer.Elapsed += UpdateCountdown;
timer.Start();
while (Countdown > 0)
{
// do not act until the 3 seconds have elapsed
}
// now that 3 seconds have elapsed...
ShowImage();
}
在我的 xaml 中,我将 Countdown 值绑定到 TextBlock:
<TextBlock Name="TbCountdown" Text="{Binding Path=Countdown}"/>
我尝试了一些不同的方法,例如尝试 Dispatcher.Invoke。我的问题是总是会发生以下两种情况之一:
- UI 被阻止,不显示 3 变成 2,等等。
- UI 正确显示 3、2、1,但 ShowImage() 方法不会等待 3 秒,它会立即发生。
有什么建议吗?
【问题讨论】:
-
你为什么不用ajax和Jquery?
-
一旦时间完成,调用 ajax 方法并在 div 或任何你想显示的地方显示图像
-
@nikunjMnage Ajax 和 jQuery 与桌面 WPF 应用程序有什么关系?