首页 > 其他分享 >【愚公系列】2023年09月 WPF控件专题 ProgressBar控件详解

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

时间:2023-09-07 21:01:59浏览次数:37  
标签:控件 进度条 09 Value ProgressBar WPF 属性

(文章目录)


前言

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声明:

<ProgressBar Value="50" Minimum="0" Maximum="100" Height="20" Width="200"/>

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

progressBar.Value = 75;

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

<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.具体案例

<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>
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 + "%";
   
      
}

标签:控件,进度条,09,Value,ProgressBar,WPF,属性
From: https://blog.51cto.com/u_15437432/7401499

相关文章

  • P4729 [HNOI2009] 积木游戏
    P4729[HNOI2009]积木游戏Solution2023.09.06。八个月前做这个题调了六个小时。现在看来,除开欧拉定理的部分,整道题的思路极其清晰易懂,虽然码量大,但并不难码。尽管如此,融合了数据结构、图论(模型构建+三元环计数)、拓扑论(欧拉定理)多方面知识点,而且还有四面共角的细节问题,它仍然......
  • jiangyuchen12码风 截至 2022-12-27 11:09
    最后一条码风改之前的记录那么多人的博客都有TA的码风,我也写一下吧头文件一般使用万能头文件,因为绝对看不到[Error]'***'doesnotnameatype之类的错误常量有,一般是K,N,看题目变量名字变量输入&输出一般用cin,cout大括号写题是这样while(1){……}具体......
  • English 0907
    Solearntostartthinkingintermsofbundlesofconceptsorideasthatwillbeconvertedtonewlanguageandnotsinglewords.Trytothinkinaforeignlanguage.Thisisn'tallthathard.Youlearntothinkinthelanguagesimplybyusingthelang......
  • 【230908-1】(指数对数比大小)已知:a=log0.1_0.2,b=log1.1_0.2,c=1.1^0.2,则a,b,c的大小
    ......
  • 【230908-3】同一直角坐标系中,分别作函数y=1/a^x,y=loga_(x-1/2)(a>0且a≠1)的图像如
    ......
  • 【230907-4】已知:a=log5_2,b=log0.5_0.2,c=0.5^0.2 求:a,b,c的大小关系(2019年天津理科
    ......
  • 【2023-09-06】稳定内心
    20:00一个人如果有勇气承认错误,那么,他所犯的错误总是可以原谅的。                                                 ——李小龙何太跟我反馈说,她们单位又开始翻起数......
  • 界面控件开发包DevExpress 9月全新发布v23.1.5
    DevExpressUniversalSubscription拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpressDashboardeXpressApp框架、适用于VisualStudio的CodeRush等一系列辅助工具。屡获大奖的软件开发平台DevExpress今年第一个重要版本v23.1正式发布,该版本拥有众多新......
  • 日记2023-09-07
    随笔1:阿拉伯数字,大写英文字母,小写英文字母,点号,减号,共是64个,2的6次方。随笔2:数据类型和方法尽量分离,对于F#来说,记录类型,可区分联合类型,里面不要使用member成员,而是将其放到module模块中。尽量不要使用类属性,而是单独声明set与get成员。避免将访问成员变量的方法伪装成成员变量......
  • 2023年09月编程语言流行度排名
    点击查看最新编程语言流行度排名(每月更新)2023年09月编程语言流行度排名编程语言流行度排名是通过分析在谷歌上搜索语言教程的频率而创建的一门语言教程被搜索的次数越多,大家就会认为该语言越受欢迎。这是一个领先指标。原始数据来自谷歌Trends如果您相信集体智慧,那么流行编程......