2016-11-24 67 views
1

我已写入此示例来显示我的问题。 我有一个进度条(在async Sub中,但问题也在同步一个) 当我增加价值,我没有看到任何视频。UWP - ProgressBar仅在Sub的末尾处发生可视值更改

只有在小组的末尾,我可以看到现在位于值的顶部的进度条。 为什么?

Private Sub Btn_ProgressBar_Click(sender As Object, e As RoutedEventArgs) Handles Btn_ProgressBar.Click 

    Me.BarraProgresso.Minimum = 0 
    Me.BarraProgresso.Maximum = 100 
    Me.BarraProgresso.Value = 0 

    For i As Integer = 1 To 1000 
     If i/100 = CInt(i/100) Then 
      Me.BarraProgresso.Value = CInt(i/100) 
     End If 

     For KK As Integer = 0 To 9000000 
      Dim _MyApple As String = "Red Apple" 
     Next 
    Next 

End Sub 
+0

你在哪里增加价值? –

+0

对不起... Barra(i)= Me.BarraProgresso.Value = CInt(i/100) –

回答

0

你按一下按钮处理程序是同步调用UI线程上,和你做忙等待。直到您的处理程序返回,才会呈现任何内容这效果更好:

private async void BtnProgressBarClick(object sender, RoutedEventArgs e) 
{ 
    this.BarraProgresso.Minimum = 0; 
    this.BarraProgresso.Maximum = 1000; 
    this.BarraProgresso.Value = 0; 

    for (int i = 0; i < 1000; i++) 
    { 
     this.BarraProgresso.Value = i; 
     await Task.Delay(10); // Gives rendering a chance to run 
    } 
} 

这是C#而不是VB,但我想象翻译是可管理的。 :-)

+0

它的工作非常好感谢 –