1

我是 Windows Phone 开发的新手,我正在尝试做一些我认为非常简单的事情:我有一个页面,带有一个按钮和一个 textBlock。我希望,每当按下按钮时,textBlock 的文本都会更改为“Bazinga!” 几秒钟,然后恢复到之前的值。

我已经尝试了下面的代码,但它不起作用(我想是因为 textBlock 的显示在仍在 Button_Click 调用中时没有刷新)。

在查找了几个关键字后,我看到了:WPF not updates textbox while in progress

这告诉我我必须显式调用 Dispatcher 的 Invoke 方法……但我只看到一个 BeginInvoke() 方法(我猜这是 Windows Phone 的特殊性),而且我几次尝试使其正确都不太走运。

感谢您提供的任何帮助

private void Button_Click(object sender, RoutedEventArgs e)
{
    this.Function();
}

private void Function()
{
    string text = this.TextBlock1.Text;
    DateTime until = DateTime.Now.AddSeconds(5.0);
    this.TextBlock1.Text = "Bazinga!";
    while (DateTime.Now < until)
    {
        // Do nothing
    }
    this.TextBlock1.Text = text;
}
4

1 回答 1

0
private async void Button_Click(object sender, RoutedEventArgs e)
{
    string text = TextBlock1.Text;
    TextBlock1.Text = "Bazinga!";
    await Task.Delay(5000);
    TextBlock1.Text = text;
}
于 2013-11-12T01:09:30.987 回答