ProgressBar控件与传统WinForm使用方法完全一样,我们只需关注:
Minimum——最小值,默认为0;
Maximum——最大值,默认为100.
Value——当前值。
 
关键是它的控件模板,因为系统的默认主题不好看,很多时候我们是需要自定义样式和模板。
老方法,先看定义:
  1. <span style="font-size:16px;">[TemplatePartAttribute(Name = "PART_Track", Type = typeof(FrameworkElement))]
  2. [TemplatePartAttribute(Name = "PART_Indicator", Type = typeof(FrameworkElement))]
  3. public class ProgressBar : RangeBase
  4. </span>

从类定义中看到,ProgressBar控件的模板有两个部分,我们在定义模板的时候用什么都可以,上面的定义指定是FrameworkElement,因此,只要是继承自FrameworkElement的都可以作为模板的一部分,重点是Name属性一定要和每个部分的名称对应,也就是说你定义的模板部件必须为PART_Track和PART_Indicator.
PART_Indicator是进度条增加指示的形状,即我们看到在滑动的部分;
PART_Track就是后面的背景层,也就是不动的那部分。
 
明白了这点就好办了。
 
  1. <span style="font-size:16px;"> <LinearGradientBrush x:Key="g1" StartPoint="0,0" EndPoint="1,1">
  2. <GradientStop Color="Orange" Offset="0"/>
  3. <GradientStop Color="Yellow" Offset="0.5"/>
  4. <GradientStop Color="Orange" Offset="1"/>
  5. </LinearGradientBrush>
  6. <Style
  7. TargetType="{x:Type ProgressBar}">
  8. <Setter Property="Template">
  9. <Setter.Value>
  10. <ControlTemplate TargetType="{x:Type ProgressBar}">
  11. <Grid MinHeight="14" MinWidth="200">
  12. <Border
  13. Name="PART_Track"
  14. CornerRadius="20"
  15. BorderBrush="Black"
  16. BorderThickness="1" Background="#FF57C7C9" />
  17. <Border
  18. x:Name="PART_Indicator"
  19. CornerRadius="16"
  20. BorderBrush="Red"
  21. BorderThickness="1"
  22. HorizontalAlignment="Left" >
  23. <Border.Background>
  24. <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
  25. <GradientStop Color="Orange" Offset="0"/>
  26. <GradientStop Color="Yellow" Offset="0.5"/>
  27. <GradientStop Color="Orange" Offset="1"/>
  28. </LinearGradientBrush>
  29. </Border.Background>
  30. </Border>
  31. </Grid>
  32. </ControlTemplate>
  33. </Setter.Value>
  34. </Setter>
  35. </Style>
  36. </span>

窗体上放一个ProgressBar控件

  1. <span style="font-size:16px;">  <ProgressBar x:Name="progressBar" Margin="173,113.5,178.187,137"  OverridesDefaultStyle="True" RenderTransformOrigin="0.5,0.5" Value="55">
  2. <ProgressBar.RenderTransform>
  3. <TransformGroup>
  4. <ScaleTransform/>
  5. <SkewTransform/>
  6. <RotateTransform/>
  7. <TranslateTransform/>
  8. </TransformGroup>
  9. </ProgressBar.RenderTransform>
  10. <ProgressBar.Foreground>
  11. <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
  12. <GradientStop Color="#FF24EE27" Offset="0"/>
  13. <GradientStop Color="#FF5434AC" Offset="0.5"/>
  14. <GradientStop Color="#FFB371EA" Offset="1"/>
  15. </LinearGradientBrush>
  16. </ProgressBar.Foreground>
  17. </ProgressBar>
  18. </span>

 
 
 
 

继续聊WPF——进度条的更多相关文章

  1. WPF 进度条ProgressBar

    今天研究了一下wpf的进度条ProgressBar 1.传统ProgressBar WPF进度条ProgressBar 这个控件,如果直接写到循环里,会死掉,界面会卡死,不会有进度.需要把进度条放到单 ...

  2. WPF进度条系列②旋转小圆圈

     写在之前: 关于WPF的样式,我也是学习了很多朋友的文章才有了下面的东西,因为时间有些久远 & 备份的链接也都不在了. 所以,究竟是看过哪些文章,也是记不清楚了…… 请见谅. ------- ...

  3. C# WPF 进度条,根据读取数据显示进度条进度,根据Excel文件读取数据,进度条样式

    后台代码: //导入 private void Border_MouseLeftButtonUp_2(object sender, MouseButtonEventArgs e) { var path ...

  4. wpf 进度条 下拉

    <Window x:Class="WpfApplication1.MainWindow"        xmlns="http://schemas.microsof ...

  5. WPF进度条

    ProgressBar控件与传统WinForm使用方法完全一样,我们只需关注: Minimum——最小值,默认为0: Maximum——最大值,默认为100. Value——当前值.   关键是它的控 ...

  6. WPF进度条系列①滑动小圆点

     写在之前: 关于WPF的样式,我也是学习了很多朋友的文章才有了下面的东西,因为时间有些久远 & 备份的链接也都不在了. 所以,究竟是看过哪些文章,也是记不清楚了…… 请见谅. ------- ...

  7. WPF 进度条

    //Create a Delegate that matches the Signature of the ProgressBar's SetValue method private delegate ...

  8. Photoshop和WPF双剑配合,打造炫酷个性的进度条控件

    现在如果想打造一款专业的App,UI的设计和操作的简便性相当重要.UI设计可以借助Photoshop或者AI等设计工具,之前了解到WPF设计工具Expression Blend可以直接导入PSD文件或 ...

  9. WPF自定义控件第一 - 进度条控件

    本文主要针对WPF新手,高手可以直接忽略,更希望高手们能给出一些更好的实现思路. 前期一个小任务需要实现一个类似含步骤进度条的控件.虽然对于XAML的了解还不是足够深入,还是摸索着做了一个.这篇文章介 ...

随机推荐

  1. select readonly 不能看到其它选项解决方式

    在html中是select readonly后.依旧能够下拉选择.不想做disabled添加隐藏域,以下提供两种解决方式 解决方式1: onfocus="this.defaultIndex= ...

  2. 一步步玩pcDuino3--mmc下的bootloader

    pcDuino3下支持mmc启动.官方的Uboot是採用SPL框架实现的,由于内部的SRAM空间达到32K,我们全然能够在这32K空间内编写一个完整可用小巧的bootloader来完毕引导Linux ...

  3. 源码中修改Android的开机画面和动画【转】

    本文转载自:http://blog.csdn.net/dddxxxx/article/details/54343976 参照文章:http://blog.csdn.net/a345017062/art ...

  4. Entity Framework Utility .ttinclude File

    https://msdn.microsoft.com/en-us/library/ff477603(v=vs.100).aspx This topic provides an overview of ...

  5. 包含utf8字符的 pickle 转 json的大坑处理过程

    背景:希望将pickle转换为json,由于pickle里有utf8的字符,因此转换失败. 转换代码如下: ''' Convert a pkl file into json file ''' impo ...

  6. tflearn中num_epoch含义就是针对所有样本的一次迭代

    In tensorflow get started code: import tensorflow as tf import numpy as np features = [tf.contrib.la ...

  7. Codeforces--630K--Indivisibility(容斥)

     K - Indivisibility Crawling in process... Crawling failed Time Limit:500MS     Memory Limit:65536 ...

  8. hdoj--1418--抱歉(水题)

     抱歉 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  9. Struts2 中 result type=”json” 的参数解释

    转自:http://wangquanhpu.iteye.com/blog/1461750 1, ignoreHierarchy 参数:表示是否忽略等级,也就是继承关系,比如:TestAction 继承 ...

  10. B. Sereja and Suffixes(cf)

    http://codeforces.com/problemset/problem/368/B B. Sereja and Suffixes time limit per test 1 second m ...