当前位置: 首页 > news >正文

WPF----进度条ProgressBar(渐变色)

ProgressBar 是一种用于指示进程或任务的进度的控件,通常在图形用户界面(GUI)中使用。它提供了一种视觉反馈,显示任务的完成程度,帮助用户了解任务的进展情况。

基本特性

  1. MinimumMaximum 属性:

    • 这些属性定义进度的范围。默认情况下,Minimum 为 0,Maximum 为 100。
  2. Value 属性:

    • 这个属性表示当前进度。它应该在 MinimumMaximum 之间。
  3. IsIndeterminate 属性:

    • 如果设置为 TrueProgressBar 将显示一个动画条,而不是实际的进度值。这通常用于无法确定进度百分比的任务。

示例:自定义渐变色 ProgressBar

1. 定义渐变色 ProgressBar 样式

在资源字典或窗口资源中定义 ProgressBar 的样式:

 <Style x:Key="RoundedProgressBar" TargetType="ProgressBar"><Setter Property="Height" Value="28"></Setter><!--<Setter Property="Width" Value="600"></Setter>--><Setter Property="Foreground" Value="#E6E6E6"></Setter><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ProgressBar"><Grid><Border x:Name="PART_Track"Background="#404040"CornerRadius="7"BorderBrush="#666"BorderThickness="1"><Border x:Name="PART_Indicator"CornerRadius="7,0,0,7"HorizontalAlignment="Left"Width="0"><Border.Background><LinearGradientBrush StartPoint="0,0" EndPoint="1,0"><GradientStop Color="#FF669FB1"  Offset="1.0" /><GradientStop Color="#90669FB3" Offset="0.5" /><GradientStop Color="#A6669FB1" Offset="0.35" /><GradientStop Color="#00669FB1" Offset="0.0" /></LinearGradientBrush></Border.Background></Border></Border></Grid><ControlTemplate.Triggers><Trigger Property="IsIndeterminate" Value="True"><Setter TargetName="PART_Indicator" Property="Background" Value="Green"/></Trigger><Trigger Property="IsIndeterminate" Value="False"><!--<Setter TargetName="PART_Indicator" Property="Width" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=ActualWidth, Converter={StaticResource ProgressWidthConverter}}"/>--></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter></Style>
2. 在 XAML 中使用 ProgressBar 控件:
 <Grid ><ProgressBar Style="{StaticResource RoundedProgressBar}"  HorizontalAlignment="Stretch"   Value="{Binding ProgressValue}"  Minimum="0" Maximum="100"  /><TextBlock TextAlignment="Center" Foreground="#E6E6E6" VerticalAlignment="Center" ><Run Text="{Binding ProgressValue}"></Run><Run>%</Run></TextBlock></Grid>
3. ViewModel

ViewModel 中定义一个绑定到 ProgressBar 的属性ProgressValue:

 [ObservableProperty]private int _progressValue = 0;
4.渐变色颜色解析

设置颜色与透明度关系

在 WPF 中,颜色的透明度是通过 ARGB (Alpha, Red, Green, Blue) 值表示的,其中 Alpha 值控制透明度。Alpha 值范围是 0 到 255,其中 0 表示完全透明,255 表示完全不透明。

如果你想要 35% 的透明度,你可以计算相应的 Alpha 值。35% 透明度意味着 65% 不透明度,因此你可以使用以下公式来计算 Alpha 值:

Alpha=255×65100=255×0.65≈166\text{Alpha} = 255 \times \frac{65}{100} = 255 \times 0.65 \approx 166Alpha=255×10065​=255×0.65≈166

因此,Alpha 值大约是 166,对应的十六进制值是 A6

所以对应的颜色值为#A6669FB1。

最终结果如下:

http://www.lryc.cn/news/388000.html

相关文章:

  • Apipost接口测试工具的原理及应用详解(四)
  • 【图论】200. 岛屿问题
  • AI学习指南机器学习篇-随机森林的优缺点
  • 基于boost::beast的http服务器(上)
  • 深度学习之近端策略优化(Proximal Policy Optimization,PPO)
  • 用pycharm进行python爬虫的步骤
  • 重写功能 rewrite
  • ISO19110操作要求类中/req/operation/operation-attributes的详细解释
  • 访客(UV)、点击量(PV)、IP、访问量(VV)概念
  • C++系统编程篇——Linux第一个小程序--进度条
  • 一个中文和越南语双语版本的助贷平台开源源码
  • 【游戏引擎之路】登神长阶(五)
  • FireAct:使用智能体(agent)微调大语言模型
  • 20240626让飞凌的OK3588-C开发板在相机使用1080p60分辨率下预览
  • python数据分析——数据分类汇总与统计
  • iOS17系统适配
  • 树洞陪聊陪玩交友程序系统源码,解锁交友新体验
  • 区间动态规划——最长回文子序列长度(C++)
  • 无人机远程控制:北斗短报文技术详解
  • 240627_关于CNN中图像维度变化问题
  • 食品行业怎么用JSON群发短信
  • MySQL高级-MVCC-隐藏字段
  • 探索PcapPlusPlus开源库:网络数据包处理与性能优化
  • 深入理解SSH:网络安全的守护者
  • DDD学习笔记四
  • Head First设计模式中的典型设计模式解析与案例分析
  • iptables 防火墙(一)
  • 数据库物理结构设计-定义数据库模式结构(概念模式、用户外模式、内模式)、定义数据库、物理结构设计策略
  • QT加载安装外围依赖库的翻译文件后翻译失败的现象分析:依赖库以饿汉式的形式暴露单例接口导致该现象的产生
  • 13_旷视轻量化网络--ShuffleNet V2