下面的代码告诉你怎么在XAML里面声明一个 ProgressBar :
<ProgressBar Foreground="White" Background="Gray" Value="25" Maximum="100" Width="200" Height="20" Margin="20">
先来看下ProgressBar里面,我们用到的每一个属性:
Foreground – ProgressBar的进度条色
Background – 控件背景色
Value – ProgressBar的开始值
Maximum – ProgressBar的结束值
Width/Height – ProgressBar的宽高
Margin – 控件和它的父容器之间的间隙。用 Margin 比用 Canvas.Left 和 Canvas.Top 舒服。
添加一个 timer ,让你的 progress bar 走到它的最大值:
namespace Password
{
public partial class Page : UserControl
{
Storyboard _timer = new Storyboard();
public Page()
{
InitializeComponent();
_timer.Duration = TimeSpan.FromMilliseconds(10);
_timer.Completed += new EventHandler(_timer_Completed);
_timer.Begin();
}
void _timer_Completed(object sender, EventArgs e)
{
if (MyProgress.Value < MyProgress.Maximum)
{
MyProgress.Value++;
_timer.Begin();
}
}
}
}
当你运行这个控件的时候,你就能看到它从25开始,走到最大值:
如果你不想使用 timer 想让 progress bar 不断重复的话,你可以设置属性 IsDeterminate 为 “true”:
<ProgressBar IsIndeterminate="True"/>
你还能自定义你的 ProgressBar ,通过设定 Background 和 Foreground 为各种可用的刷子:
Brush
GradientBrush
LinearBrush
Imagebrush
LinearGradientBrush
RadialGradientBrush
SolidColorBrush
下面是一个 ImageBrush 的例子:
<ProgressBar Value="25" x:Name="MyProgress" Maximum="100" Width="300" Height="50" Margin="20">
<ProgressBar.Foreground>
<ImageBrush ImageSource="Smile.png"></ImageBrush>
</ProgressBar.Foreground>
</ProgressBar>