这一直是所有问题中最简单的问题,但我似乎无法弄明白。我有进度条,如何让它显示进度。我该如何开始呢?
<ProgressBar x:Name="ProgressUpload" Margin="5" IsIndeterminate="True" ></ProgressBar>
答案 0 :(得分:22)
如果将IsIndeterminate设置为True,则进度具有某些内容正在进行但您无法确定确切持续时间的含义。因此,我只能告诉您将其设置为false并在其“标准”行为中使用进度条。
答案 1 :(得分:16)
如果你试图让进度条开始,简单地说,但是作为一个不确定的条,你必须在准备好时将属性IsIndeterminate设置为true,并在完成时将其设置为false。
换句话说:
pbar.IsIndeterminate = true; //This starts your bar's animation
pbar.IsIndeterminate = false; //This stops your bar's animation
为了向您提供有关您为什么要这样做的上下文,请查看以下伪代码:
//Some method that is going to start something that is going to take a while
public void StartLongRunningProcess()
{
//Make a call to a web service asynchronously etc...
//Start the animation for your progress bar
pbar.IsIndeterminate = true;
}
//The method (delegate) that handles the result, usually from an event.
//This method will handle the result of the asynchronous call
public void HandlerForLongRunningProcess()
{
//Do stuff with result from your asynchronous web service call etc...
//Stop the animation for your progress bar
pbar.IsIndeterminate = false;
}
让我第一个说我不确定这是否是这个属性的预期用法,但我可以说它肯定有效。
答案 2 :(得分:1)
显然在某些环境中,必须明确设置高度才能运行不确定的动画,而在其他环境中则不需要高度。
答案 3 :(得分:0)
在初始化期间(即XAML中的UI设计器,或代码端的构造函数),不要将其设置为IsIndeterminate。如果您这样做,则动画将无法启动。将其设置在“已加载”内。事件处理程序。
我会在XAML方面IsIndeterminate = 'False'
,然后在Window_Loaded
事件中设置:
myProgressBar.IsIndeterminate = true;
答案 4 :(得分:0)
问题的一个可能的解决方法是简单地显示或隐藏ProgressBar控件:
progressBar.Visibility = Visibility.Visible;
progressBar.Visibility = Visibility.Collapsed;
答案 5 :(得分:0)
这与上面的@dyslexicanaboko没有什么区别,但是你可以快速轻松地进行可以控制的演示:
在XAML中:
<Button Content="Start Process" HorizontalAlignment="Center" Click="StartAProcess"/>
<Button Content="Stop Process" HorizontalAlignment="Center" Click="StopAProcess"/>
<ProgressBar Name="pBar1" Height="20"/>
在代码背后:
Public Sub StartAProcess()
pBar1.IsIndeterminate = True
End Sub
Public Sub StopAProcess()
pBar1.IsIndeterminate = False
End Sub
单击“开始处理”按钮后,动画将开始并继续,直到单击“停止处理”按钮。这应该是显而易见的,但是IsIndeterminate选项不是很好的UI实践;更好地实际更新价值,但对于那些希望在行动中看到这一点的人......
答案 6 :(得分:0)
还要确保CacheMode =&#34; BitmapCache&#34;未设置为您的页面 - 否则动画将无法运行。它只显示缓存的位图...