首页
学习
活动
专区
圈层
工具
发布
50 篇文章
1
【愚公系列】2023年09月 WPF控件专题 XAML介绍
2
【愚公系列】2023年09月 WPF控件专题 WPF应用程序组成
3
【愚公系列】2023年09月 WPF控件专题 Window窗体属性和事件
4
【愚公系列】2023年09月 WPF控件专题 Label、TextBox、PasswordBox控件介绍
5
【愚公系列】2023年09月 WPF控件专题 Button控件详解
6
【愚公系列】2023年09月 WPF控件专题 RadioButton控件详解
7
【愚公系列】2023年09月 WPF控件专题 CheckBox控件详解
8
【愚公系列】2023年09月 WPF控件专题 Image控件详解
9
【愚公系列】2023年09月 WPF控件专题 Border控件详解
10
【愚公系列】2023年09月 WPF控件专题 ComboBox控件详解
11
【愚公系列】2023年09月 WPF控件专题 ListBox控件详解
12
【愚公系列】2023年09月 WPF控件专题 DatePicker控件详解
13
【愚公系列】2023年09月 WPF控件专题 Calendar控件详解
14
【愚公系列】2023年09月 WPF控件专题 Slider控件详解
15
【愚公系列】2023年09月 WPF控件专题 ProgressBar控件详解
16
【愚公系列】2023年10月 WPF控件专题 StackPanel控件详解
17
【愚公系列】2023年10月 WPF控件专题 WrapPanel控件详解
18
【愚公系列】2023年10月 WPF控件专题 DockPanel控件详解
19
【愚公系列】2023年10月 WPF控件专题 Canvas控件详解
20
【愚公系列】2023年10月 WPF控件专题 Grid控件详解
21
【愚公系列】2023年10月 WPF控件专题 Groupbox控件详解
22
【愚公系列】2023年10月 WPF控件专题 Expander控件详解
23
【愚公系列】2023年10月 WPF控件专题 TabControl控件详解
24
【愚公系列】2023年10月 WPF控件专题 Frame控件详解
25
【愚公系列】2023年10月 WPF控件专题 ListView控件详解
26
【愚公系列】2023年10月 WPF控件专题 DataGrid控件详解
27
【愚公系列】2023年10月 WPF控件专题 Menu控件详解
28
【愚公系列】2023年10月 WPF控件专题 ContextMenu控件详解
29
【愚公系列】2023年10月 WPF控件专题 TreeView控件详解
30
【愚公系列】2023年10月 WPF控件专题 ToolBar控件详解
31
【愚公系列】2023年10月 WPF控件专题 ToolBarTray控件详解
32
【愚公系列】2023年10月 WPF控件专题 StatusBar控件详解
33
【愚公系列】2023年11月 WPF控件专题 MediaElement控件详解
34
【愚公系列】2023年11月 WPF控件专题 RichTextBox控件详解
35
【愚公系列】2023年11月 WPF控件专题 GridView控件详解
36
【愚公系列】2023年11月 WPF控件专题 Rectangle控件详解
37
【愚公系列】2023年11月 WPF控件专题 Popup控件详解
38
【愚公系列】2023年11月 WPF控件专题 OpenFileDialog控件详解
39
【愚公系列】2023年11月 WPF控件专题 SaveFileDialog控件详解
40
【愚公系列】2023年11月 WPF控件专题 RepeatButton控件详解
41
【愚公系列】2023年11月 WPF控件专题 Ellipse控件详解
42
【愚公系列】2023年11月 WPF控件专题 Polygon控件详解
43
【愚公系列】2023年11月 WPF控件专题 Path控件详解
44
【愚公系列】2023年11月 WPF控件专题 WindowFormsHost控件详解
45
【愚公系列】2023年11月 WPF控件专题 WebBrowser控件详解
46
【愚公系列】2023年11月 WPF控件专题 Validation控件详解
47
【愚公系列】2023年11月 WPF控件专题 Page控件详解
48
【愚公系列】2023年11月 WPF控件专题 PrintDialog控件详解
49
【愚公系列】2023年11月 WPF控件专题 Track控件详解
50
【愚公系列】2023年11月 WPF控件专题 Polyline控件详解

【愚公系列】2023年09月 WPF控件专题 ProgressBar控件详解

🚀前言

WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。

原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见的标准用户界面元素。

自定义控件则允许开发人员使用XAML和C#等编程语言来创建个性化的用户界面元素。自定义控件可以根据需求提供更多的功能和自定义化选项,以及更好的用户体验。

🚀一、ProgressBar控件详解

ProgressBar控件用于表示某个任务的进度,它可以在WPF中很容易地实现。下面是ProgressBar的一些属性和用法:

  1. Value属性表示进度的值,该属性的值应该在Minimum和Maximum的范围内(默认值为0和100),通过设置Value属性来更新进度条的进度。
  2. Foreground属性表示进度条的前景色,该属性可以设置为SolidColorBrush对象。
  3. Background属性表示进度条的背景色,该属性可以设置为SolidColorBrush对象。
  4. IsIndeterminate属性表示进度条是否为不确定的(动态的),默认值为false。

下面是ProgressBar控件的XAML声明:

代码语言:html
复制
<ProgressBar Value="50" Minimum="0" Maximum="100" Height="20" Width="200"/>

在代码中设置Value属性可以更新进度条的值,如下所示:

代码语言:html
复制
progressBar.Value = 75;

通过设置IsIndeterminate属性为true,可以实现进度条的动态效果,如下所示:

代码语言:html
复制
<ProgressBar IsIndeterminate="True" Width="200" Height="20"/>

ProgressBar控件还可以使用样式和模板来自定义外观和行为。

🔎1.属性介绍

WPF中ProgressBar控件有以下常用属性:

  1. Value:获取或设置当前进度的值,范围为Minimum和Maximum之间的值。
  2. Minimum:获取或设置进度条的最小值,默认值为0。
  3. Maximum:获取或设置进度条的最大值,默认值为100。
  4. Orientation:获取或设置进度条的方向,可选值为Horizontal和Vertical。
  5. IsIndeterminate:获取或设置进度条是否为不确定进度,即进度条是否显示为连续的动画效果。
  6. Foreground:获取或设置进度条的前景色,即进度条的颜色。
  7. Background:获取或设置进度条的背景色。
  8. Height:获取或设置进度条的高度。
  9. Width:获取或设置进度条的宽度。
  10. Visibility:获取或设置进度条的可见性,可选值为Visible、Collapsed和Hidden。

除了上述属性,ProgressBar控件还有其他一些属性和事件,可根据具体的需求进行配置和使用。

🔎2.常用场景

ProgressBar控件是WPF中常用的进度条控件,常用的场景包括:

  1. 文件上传或下载的进度显示
  2. 批量处理大量数据时的进度显示
  3. 长时间操作时的进度显示,如搜索、排序等
  4. 游戏中的游戏进度显示
  5. 应用程序启动时的进度显示

任何需要显示任务进度的场景都可以使用ProgressBar控件。

🔎3.具体案例

代码语言:c#
复制
<Grid>
    <!--Orientation 进度条的方向 默认水平 IsIndeterminate 指示进度是显示实际值 true 连续进度反馈-->
    <ProgressBar HorizontalAlignment="Left" Orientation="Vertical" IsIndeterminate="True" Value="40" Minimum="0" Maximum="80" Height="299" Margin="49,89,0,0" VerticalAlignment="Top" Width="98"/>
    <ProgressBar Name="pbar2" HorizontalAlignment="Left" Minimum="0" Maximum="100"  Orientation="Horizontal"  SmallChange="2" Height="29" Margin="287,201,0,0" VerticalAlignment="Top" Width="412"  ValueChanged="Pbar2_ValueChanged" >
       
    </ProgressBar>
    <Button Content="加载" HorizontalAlignment="Left" Margin="287,328,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
    <Label Name="lblVal" HorizontalAlignment="Left" Margin="287,252,0,0" VerticalAlignment="Top" Height="28" Width="51"/>
</Grid>
代码语言:c#
复制
private void Button_Click(object sender, RoutedEventArgs e)
{
    //pbar2.Value = 0;
    //for (int i = 0; i < pbar2.Maximum; i++)
    //{
    //    pbar2.Value = i;
    //    lblVal.Content = pbar2.Value + "%";
    //    Thread.Sleep(100);
    //}
    int max = 50;
    Task.Run(() =>
    {
        for (int i = 0; i <= max; i++)
        {
            pbar2.Dispatcher.Invoke(() =>
            {

                pbar2.Value = i;
                //lblVal.Content = pbar2.Value + "%";
            });
          
            Thread.Sleep(100);
        }
        
    });
   
}

private void Pbar2_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
        lblVal.Content = e.NewValue + "%";
   
      
}

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

下一篇
举报
领券