WPF 控件专题 ProgressBar控件详解

1、ProgressBar 介绍

    ProgressBar:进度条控件。

    WPF带有一个方便的控件用于显示进度,称ProgressBar。它的工作原理就是设置最小值和最大值然后通过递增一个值,这样就可以直观的显示当前进度情况。

**************************************************************************************************************

2、常用属性介绍

    Background:背景色;    BorderBrush:边框背景颜色;    BorderThickness:边框宽度;
    
    Foreground:前景色;    Width/Height:宽度/高度;    Visibility:可见性。
    
    FlowDirection:文本和其他用户界面 (UI) 元素在控制其布局的任何父元素内流动的方向。
    
    HorizontalAlignment/VerticalAlignment:在父元素中组合此元素时所应用的水平对齐特征/垂直对齐特征。
    
    HorizontalContentAlignment/VerticalContentAlignment:控件内容的水平对齐方式/垂直对齐方式。
    
    LayoutTransform:在执行布局时应该应用于此元素的图形转换方式。
    
    Margin:元素的外边距;    Maximun/MiniMun:元素控件范围最大值和最小值;
    
    Name:元素标识名称;    Opacity:透明度;
    
    Orientation:ProgressBar的方向:水平或垂直;
    
    RenderTransform:获取或设置影响此元素的呈现位置的转换信息。
    
    RenderTransformOrigin:获取或设置由 RenderTransform 声明的任何可能呈现转换的中心点,相对于元素的边界。
    
    Value:ProgressBar控件的当前数量。

**************************************************************************************************************

3、具体代码示例

<WrapPanel Orientation="Vertical">
	<ProgressBar x:Name="prbar0" Margin="20" Width="250" Value="50" Height="10" />
	
	<ProgressBar x:Name="prbar1" Margin="20" Width="250" Value="50" Height="10" BorderBrush="OrangeRed" BorderThickness="1" Background="DimGray" 
				  Maximum="100">
	</ProgressBar>
	<TextBlock Margin="20 0" Foreground="#dddddd">
		<Run >prbar1 的Vaule值:</Run>
		<Run Text="{Binding ElementName=prbar1, Path=Value}"/>
	</TextBlock>

	<ProgressBar x:Name="prbar2" Margin="20" Width="250" Value="50" Height="10" BorderBrush="OrangeRed" BorderThickness="1" Background="DimGray" 
				  FlowDirection="RightToLeft" Maximum="100">
	</ProgressBar>
	<TextBlock Margin="20 0" Foreground="#dddddd">
		<Run >prbar2 的Vaule值:</Run>
		<Run Text="{Binding ElementName=prbar2, Path=Value}"/>
	</TextBlock>

	<ProgressBar x:Name="prbar3" Margin="10" Width="10" Value="50" Height="120"  
				  Orientation="Vertical" FlowDirection="RightToLeft" Maximum="150">
	</ProgressBar>
	<TextBlock Foreground="#dddddd">
		<Run >prbar3 的Vaule值:</Run>
		<Run Text="{Binding ElementName=prbar3, Path=Value}"/>
	</TextBlock>

	<Button Margin="10" Content="进度开始" Height="30" Click="Button_Click"/>
</WrapPanel>

后台模拟进度显示

private void Button_Click(object sender, RoutedEventArgs e)
{
	Task.Run(() =>
	{
		for (int i = 0; i <= 100; i = i+5)
		{
			Application.Current.Dispatcher.BeginInvoke(new Action(() =>
			{
				prbar0.Value = i;
				prbar1.Value = i;
				prbar2.Value = i;
				prbar3.Value = i;
			}));
			System.Threading.Thread.Sleep(500);
		}
	});
}

**************************************************************************************************************

4、效果图

**************************************************************************************************************

5、总结和扩展

    我们可以使用Template属性进行,进度条的改写。

    我们在后台更新ProgressBar时,要注意,使用异步更新界面,不然整个界面就会出现假死现象,不能操作。

    改写ProgressBar模板样式示例: WPF 控件专题 自定义ProgressBar控件

**************************************************************************************************************

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值