WPF篇(14)-ProgressBar进度条+Calendar日历控件+DatePicker日期控件
ProgressBar进度条
ProgressBar进度条通常在我们执行某个任务需要花费大量时间时使用,这时可以采用进度条显示任务或线程的执行进度,以便给用户良好的使用体验。
ProgressBar类定义
public class ProgressBar : RangeBase
{public static readonly DependencyProperty IsIndeterminateProperty;public static readonly DependencyProperty OrientationProperty;public ProgressBar();public bool IsIndeterminate { get; set; }public Orientation Orientation { get; set; }public override void OnApplyTemplate();protected override AutomationPeer OnCreateAutomationPeer();protected override void OnMaximumChanged(double oldMaximum, double newMaximum);protected override void OnMinimumChanged(double oldMinimum, double newMinimum);protected override void OnValueChanged(double oldValue, double newValue);}
ProgressBar自身只有两个属性,分别是IsIndeterminate和Orientation 。
- IsIndeterminate属性:如果为true,表示以动画从左到右滑动的方式展示进度效果。
- Orientation属性:表示进度条的方式,水平时从左至右增长,垂直时从下到上增长。
ProgressBar案例
前端
<StackPanel VerticalAlignment="Center"><ProgressBar x:Name="_ProgressBar" IsIndeterminate="False" Value="50" Minimum="0" Maximum="100" Orientation="Horizontal" Height="10" Margin="15"/><TextBlock x:Name="_TextBlock" Text="50%" HorizontalAlignment="Center"/></StackPanel>
后端
public partial class MainWindow{public MainWindow(){InitializeComponent();Loaded += (s, e) =>{Task.Factory.StartNew(() =>{for (int i = 0; i <= 100; i++){Dispatcher.Invoke(() => {_TextBlock.Text = $"{i}%";_ProgressBar.Value = i;});Task.Delay(25).Wait();}});};}}

Calendar日历控件
Calendar提供一个日历界面,供用户选择日期,它继承于Control基类。
属性成员
- DisplayDateStart:获取或设置可在日历中的第一个日期。
- CalendarItemStyle:获取或设置CalendarItem的样式
- CalendarDayButtonStyle:获取或设置CalendarDayButton的样式
- CalendarButtonStyle :获取或设置CalendarButton的样式
- BlackoutDates:获取标记为不可选择的日期的集合。
- DisplayMode:获取或设置一个值,该值指示是否日历显示月、 年或十年。
- DisplayDateEnd:获取或设置可在日历中的日期范围内的最后日期。
- IsTodayHighlighted:获取或设置一个值,该值指示是否突出显示当前日期。默认true。
- SelectedDate:获取或设置当前选定的日期。[重要]
- SelectedDates:获取选定日期的集合。
- SelectionMode:获取或设置一个值,指示允许包含什么样的选择。如果是多选的号,就可以从SelectedDates属性获取所有已选的日期。
- DisplayDate:获取或设置要显示的日期。
- FirstDayOfWeek:获取或设置在一天中被视为周的开始。
事件成员
- SelectedDatesChanged:开启多选后,当所选集合的元素数量发生变化时引发。
- DisplayDateChanged:DisplayDate属性被修改后引发。
- SelectionModeChanged:SelectionMode属性(选择模式)发生改变后引发。
- DisplayModeChanged:DisplayMode属性(显示模式)发生改变后引发。
Calendar示例
前端代码
<StackPanel HorizontalAlignment="Center" Margin="30"><Calendar x:Name="_Calendar" HorizontalAlignment="Left" VerticalAlignment="Top"Margin="0,15" DisplayDateStart="2020/1/1 00:00:00"DisplayDateEnd="2030/1/1 00:00:00"SelectionMode="MultipleRange"/><Button Content="选择" Click="Button_Click"/></StackPanel>
后端代码
private void Button_Click(object sender, RoutedEventArgs e){var list = _Calendar.SelectedDates;var current = _Calendar.SelectedDate;MessageBox.Show($"当前日期数量:{list.Count},当前日期:{current}");}


DatePicker日期控件
DatePicker与Calender在某些属性上很相似,只是为了方便显示和操作,DatePicker将Calender进行了封装。
属性成员
- BlackoutDates:获取或设置为不可选择的日期的标记集合。不常用。
- DisplayDateStart:获取或设置要显示的第一个日期。
- DisplayDateEnd:获取或设置要显示的最后日期。
- DisplayDate:获取或设置要显示的日期。
- CalendarStyle:获取或设置呈现日历时所使用的样式。
- IsTodayHighlighted:获取或设置一个值,该值指示是否将突出显示当前日期。
- IsDropDownOpen:获取或设置一个值,该值指示Calendar 下拉列表是打开还是关闭。
- SelectedDateFormat:获取或设置用于显示所选的日期的格式。
- Text:获取DatePicker显示文本,或设置选定的日期
- FirstDayOfWeek:获取或设置在一天中被视为周的开始。
- SelectedDate:获取或设置当前选定的日期。
- HasEffectiveKeyboardFocus:获取一个值,该值指示DatePicker 是否 具有焦点。
事件成员
- CalendarClosed:DatePicker下拉列表关闭时引发此事件
- CalendarOpened:DatePicker下拉列表打开时引发此事件
- SelectedDateChanged:SelectedDate属性发生改变时引发此事件
- DateValidationError:当Text属性不是日期形式的字符串时引发此事件
DatePicker示例
前端代码
<StackPanel HorizontalAlignment="Center" Margin="30" VerticalAlignment="Center"><StackPanel Orientation="Horizontal" Margin="10"><TextBlock Text="开始日期" VerticalAlignment="Center" Margin="10,0"/><DatePicker x:Name="_DatePickerStart" VerticalAlignment="Center" Width="120"/></StackPanel><StackPanel Orientation="Horizontal" Margin="10"><TextBlock Text="结束日期" VerticalAlignment="Center" Margin="10,0"/><DatePicker x:Name="_DatePickerEnd" VerticalAlignment="Center" Width="120"/></StackPanel><Button Content="查询" Click="Button_Click" Margin="10,0"/></StackPanel>
后端代码
private void Button_Click(object sender, RoutedEventArgs e){var selectedDate = $"查询日期:{_DatePickerStart.SelectedDate} {_DatePickerEnd.SelectedDate}\r\n";var text = $"文本值:{_DatePickerStart.Text} {_DatePickerEnd.Text}";MessageBox.Show($"{selectedDate} {text}");}

相关文章:
WPF篇(14)-ProgressBar进度条+Calendar日历控件+DatePicker日期控件
ProgressBar进度条 ProgressBar进度条通常在我们执行某个任务需要花费大量时间时使用,这时可以采用进度条显示任务或线程的执行进度,以便给用户良好的使用体验。 ProgressBar类定义 public class ProgressBar : RangeBase {public static readonly De…...
链表高频题目和必备技巧
链表高频题目和必备技巧 1. 链表类题目注意点 1,如果笔试中空间要求不严格,直接使用容器来解决链表问题 2,如果笔试中空间要求严格、或者在面试中面试官强调空间的优化,需要使用额外空间复杂度**O(1)**的方法 3,最…...
Vue3详细介绍,正则采集器所用前端框架
Vue3 引入了一个全新的响应式系统,它是基于ES6的Proxy特性构建的。这个系统使得 Vue 能够更加高效地追踪数据的变化,并在数据发生变化时自动更新DOM。响应式系统的核心是"可观察",当数据变化时,视图会响应这些变化并重新…...
数据集--COCO2017(快速下载)
1、数据集介绍 数据集官网:https://cocodataset.org/#home COCO(Common Objects in Context)数据集是计算机视觉领域中最广泛使用的数据集之一,主要用于目标检测、分割和图像标注任务。COCO 数据集由 Microsoft 发布,…...
【管理咨询宝藏159】顶级咨询公司人力三支柱建设方案思路
阅读完整版报告内容,请搜索VV号“管理咨询宝藏”。 【管理咨询宝藏159】顶级咨询公司人力三支柱建设方案思路 【格式】PDF版本 【关键词】人力咨询、三支柱、人力体系 【核心观点】 - 集团总部制定全集团共享中心总体规划路径,组织并负责实施与推广。各…...
跨时钟域总结
跨时钟域总结 秋招学习跨时钟域 总结一下吧 异步电路 设计中有两个频率不同的时钟(也可能多个),而有数据在两组时钟之间传输 单bit跨时钟域 慢时钟域数据-> 快时钟域 方法 : 使用两个锁存器 (打两拍) 数据跨时钟域同步过程中,脉冲宽度会改变,不影响同步结…...
富婆和富公子都在看的负载均衡和Haproxy大全
一.负载均衡 1.1:什么是负载均衡 负载均衡: Load Balance ,简称 LB ,是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均 衡将特定的业务(web 服务、网络流量等 ) 分担给指定的一个或多个后端特定的服务器或…...
VScode找python环境 (conda)
第一步 CtrlshiftP 第二步 框框里输入:Python:Select Interpreter...
C# Winform序列化和反序列化
在NET Framework 4.7.2中不能用Newtonsoft.Json进行序列化和反序列化,为解决此问题,采用System.Text.Json进行序列化,注意要添加System.Memory的引用。 1、创建测试类 using System; using System.Collections.Generic; using System.Linq; …...
crc原理概述
CRC(循环冗余校验)是一种错误检测技术,用于确保数据在传输或存储过程中没有发生变化。它通过将数据视为一个多项式,利用二进制除法得到一个校验码(CRC值)。接收方使用相同的算法验证数据和CRC值是否匹配&am…...
C++要求或禁止在堆中产生对象
有时你想这样管理某些对象,要让某种类型的对象能够自我销毁,也就是能够“delete this”。很明显这种管理方式需要此类型对象被分配在堆中。而其它一些时候你想获得一种保障:“不在堆中分配对象,从而保证某种类型的类不会发生内存泄…...
为什么阿里开发手册推荐用静态工厂方法代替构造器?
🍅 作者简介:哪吒,CSDN2021博客之星亚军🏆、新星计划导师✌、博客专家💪 🍅 哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师 🍅 技术交流:定期更新…...
前端写法建议【让项目更加易于维护】
背景 标题前提条件: 没有字典接口、或其他原因,需要前端手动维护的情况 示例环境:vue2,其他项目同理 示例 如果项目有某种类别,前端和后端约定好了,某些情况下,需要前端写死时。 比如有字段…...
EasyExcel 自定义转换器、自定义导出字典映射替换、满足条件内容增加样式,完整代码+详细注释说明
虽然最之前是在其他地方看到的,但最终因缘巧合下找到了原文,还是尊重一下原作者。 参考引用了这位佬的博客,确实方便使用。 https://blog.csdn.net/qq_45914616/article/details/137200688?spm1001.2014.3001.5502 这是一个基于Easyexcel通过…...
C语言学习笔记 Day10(指针--中)
Day10 内容梳理: 目录 Chapter 7 指针 7.4 指针 & 数组 (1)指针操作数组元素 (2)指针加减运算 1)加法 2)减法 (3)指针数组 7.5 多级指针 Chapter 7 指针 …...
网页显示打印 pdf
文件服务使用 minio,使用 nginx 反向代理。 将文件存放在 minio 上,如果是公开的文件,则统一放到一个桶,设置为公开只读。 如果是私有文件,则使用临时链接,给有权限的用户查看和打印。 要实现在 html 页…...
1948-2024.5金融许可信息明细数据
1948-2024.5金融许可信息明细数据 1、时间:1948-2024.5 2、指标:来源表、机构编码、机构名称、所属银行、机构类型、业务范围、机构住所、地理坐标、行政区划代码、所属区县、所属城市、所属省份、邮政编码、发证日期、批准日期、发证机关、流水号、是…...
【笔记】从零开始做一个精灵龙女-画贴图阶段(终)
这篇主要是细节,包括花纹和其它一些细化 皮肤 脖子 脖子一定要压暗,不然前后关系体现不出来 脸 1. 忘了有uv缝了,记得打开投影模式画 顺着头发轨迹长的方向画出发际线 背包手镯 1.先画出暗色花纹: 2.再加亮色,亮…...
从MySQL到Elasticsearch:创建酒店索引案例
在现代的数据管理中,Elasticsearch(简称ES)因其强大的搜索功能和灵活的索引结构而受到广泛欢迎。本篇博客将介绍如何根据MySQL数据库中的酒店表定义,创建一个相应的Elasticsearch索引。 MySQL与Elasticsearch的对比 在开始之前&…...
Webkit与Web Push API:提升用户体验的推送技术
Web Push API是一种允许网站向用户发送通知的Web技术,即使用户没有打开网站也能接收到信息。这项技术可以显著提升用户的参与度和满意度。Webkit,作为Safari和其他浏览器的内核,对Web Push API的支持情况如何?本文将深入探讨Web P…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
C++_哈希表
本篇文章是对C学习的哈希表部分的学习分享 相信一定会对你有所帮助~ 那咱们废话不多说,直接开始吧! 一、基础概念 1. 哈希核心思想: 哈希函数的作用:通过此函数建立一个Key与存储位置之间的映射关系。理想目标:实现…...
车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...
从零手写Java版本的LSM Tree (一):LSM Tree 概述
🔥 推荐一个高质量的Java LSM Tree开源项目! https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree,专为高并发写入场景设计。 核心亮点: ⚡ 极致性能:写入速度超…...
