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

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进度条通常在我们执行某个任务需要花费大量时间时使用&#xff0c;这时可以采用进度条显示任务或线程的执行进度&#xff0c;以便给用户良好的使用体验。 ProgressBar类定义 public class ProgressBar : RangeBase {public static readonly De…...

链表高频题目和必备技巧

链表高频题目和必备技巧 1. 链表类题目注意点 1&#xff0c;如果笔试中空间要求不严格&#xff0c;直接使用容器来解决链表问题 2&#xff0c;如果笔试中空间要求严格、或者在面试中面试官强调空间的优化&#xff0c;需要使用额外空间复杂度**O(1)**的方法 3&#xff0c;最…...

Vue3详细介绍,正则采集器所用前端框架

Vue3 引入了一个全新的响应式系统&#xff0c;它是基于ES6的Proxy特性构建的。这个系统使得 Vue 能够更加高效地追踪数据的变化&#xff0c;并在数据发生变化时自动更新DOM。响应式系统的核心是"可观察"&#xff0c;当数据变化时&#xff0c;视图会响应这些变化并重新…...

数据集--COCO2017(快速下载)

1、数据集介绍 数据集官网&#xff1a;https://cocodataset.org/#home COCO&#xff08;Common Objects in Context&#xff09;数据集是计算机视觉领域中最广泛使用的数据集之一&#xff0c;主要用于目标检测、分割和图像标注任务。COCO 数据集由 Microsoft 发布&#xff0c…...

【管理咨询宝藏159】顶级咨询公司人力三支柱建设方案思路

阅读完整版报告内容&#xff0c;请搜索VV号“管理咨询宝藏”。 【管理咨询宝藏159】顶级咨询公司人力三支柱建设方案思路 【格式】PDF版本 【关键词】人力咨询、三支柱、人力体系 【核心观点】 - 集团总部制定全集团共享中心总体规划路径&#xff0c;组织并负责实施与推广。各…...

跨时钟域总结

跨时钟域总结 秋招学习跨时钟域 总结一下吧 异步电路 设计中有两个频率不同的时钟(也可能多个),而有数据在两组时钟之间传输 单bit跨时钟域 慢时钟域数据-> 快时钟域 方法 : 使用两个锁存器 (打两拍) 数据跨时钟域同步过程中,脉冲宽度会改变&#xff0c;不影响同步结…...

富婆和富公子都在看的负载均衡和Haproxy大全

一.负载均衡 1.1&#xff1a;什么是负载均衡 负载均衡&#xff1a; Load Balance &#xff0c;简称 LB &#xff0c;是一种服务或基于硬件设备等实现的高可用反向代理技术&#xff0c;负载均 衡将特定的业务(web 服务、网络流量等 ) 分担给指定的一个或多个后端特定的服务器或…...

VScode找python环境 (conda)

第一步 CtrlshiftP 第二步 框框里输入&#xff1a;Python:Select Interpreter...

C# Winform序列化和反序列化

在NET Framework 4.7.2中不能用Newtonsoft.Json进行序列化和反序列化&#xff0c;为解决此问题&#xff0c;采用System.Text.Json进行序列化&#xff0c;注意要添加System.Memory的引用。 1、创建测试类 using System; using System.Collections.Generic; using System.Linq; …...

crc原理概述

CRC&#xff08;循环冗余校验&#xff09;是一种错误检测技术&#xff0c;用于确保数据在传输或存储过程中没有发生变化。它通过将数据视为一个多项式&#xff0c;利用二进制除法得到一个校验码&#xff08;CRC值&#xff09;。接收方使用相同的算法验证数据和CRC值是否匹配&am…...

C++要求或禁止在堆中产生对象

有时你想这样管理某些对象&#xff0c;要让某种类型的对象能够自我销毁&#xff0c;也就是能够“delete this”。很明显这种管理方式需要此类型对象被分配在堆中。而其它一些时候你想获得一种保障&#xff1a;“不在堆中分配对象&#xff0c;从而保证某种类型的类不会发生内存泄…...

为什么阿里开发手册推荐用静态工厂方法代替构造器?

&#x1f345; 作者简介&#xff1a;哪吒&#xff0c;CSDN2021博客之星亚军&#x1f3c6;、新星计划导师✌、博客专家&#x1f4aa; &#x1f345; 哪吒多年工作总结&#xff1a;Java学习路线总结&#xff0c;搬砖工逆袭Java架构师 &#x1f345; 技术交流&#xff1a;定期更新…...

前端写法建议【让项目更加易于维护】

背景 标题前提条件&#xff1a; 没有字典接口、或其他原因&#xff0c;需要前端手动维护的情况 示例环境&#xff1a;vue2&#xff0c;其他项目同理 示例 如果项目有某种类别&#xff0c;前端和后端约定好了&#xff0c;某些情况下&#xff0c;需要前端写死时。 比如有字段…...

EasyExcel 自定义转换器、自定义导出字典映射替换、满足条件内容增加样式,完整代码+详细注释说明

虽然最之前是在其他地方看到的&#xff0c;但最终因缘巧合下找到了原文&#xff0c;还是尊重一下原作者。 参考引用了这位佬的博客&#xff0c;确实方便使用。 https://blog.csdn.net/qq_45914616/article/details/137200688?spm1001.2014.3001.5502 这是一个基于Easyexcel通过…...

C语言学习笔记 Day10(指针--中)

Day10 内容梳理&#xff1a; 目录 Chapter 7 指针 7.4 指针 & 数组 &#xff08;1&#xff09;指针操作数组元素 &#xff08;2&#xff09;指针加减运算 1&#xff09;加法 2&#xff09;减法 &#xff08;3&#xff09;指针数组 7.5 多级指针 Chapter 7 指针 …...

网页显示打印 pdf

文件服务使用 minio&#xff0c;使用 nginx 反向代理。 将文件存放在 minio 上&#xff0c;如果是公开的文件&#xff0c;则统一放到一个桶&#xff0c;设置为公开只读。 如果是私有文件&#xff0c;则使用临时链接&#xff0c;给有权限的用户查看和打印。 要实现在 html 页…...

1948-2024.5金融许可信息明细数据

1948-2024.5金融许可信息明细数据 1、时间&#xff1a;1948-2024.5 2、指标&#xff1a;来源表、机构编码、机构名称、所属银行、机构类型、业务范围、机构住所、地理坐标、行政区划代码、所属区县、所属城市、所属省份、邮政编码、发证日期、批准日期、发证机关、流水号、是…...

【笔记】从零开始做一个精灵龙女-画贴图阶段(终)

这篇主要是细节&#xff0c;包括花纹和其它一些细化 皮肤 脖子 脖子一定要压暗&#xff0c;不然前后关系体现不出来 脸 1. 忘了有uv缝了&#xff0c;记得打开投影模式画 顺着头发轨迹长的方向画出发际线 背包手镯 1.先画出暗色花纹&#xff1a; 2.再加亮色&#xff0c;亮…...

从MySQL到Elasticsearch:创建酒店索引案例

在现代的数据管理中&#xff0c;Elasticsearch&#xff08;简称ES&#xff09;因其强大的搜索功能和灵活的索引结构而受到广泛欢迎。本篇博客将介绍如何根据MySQL数据库中的酒店表定义&#xff0c;创建一个相应的Elasticsearch索引。 MySQL与Elasticsearch的对比 在开始之前&…...

Webkit与Web Push API:提升用户体验的推送技术

Web Push API是一种允许网站向用户发送通知的Web技术&#xff0c;即使用户没有打开网站也能接收到信息。这项技术可以显著提升用户的参与度和满意度。Webkit&#xff0c;作为Safari和其他浏览器的内核&#xff0c;对Web Push API的支持情况如何&#xff1f;本文将深入探讨Web P…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

LabVIEW双光子成像系统技术

双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制&#xff0c;展现出显著的技术优势&#xff1a; 深层组织穿透能力&#xff1a;适用于活体组织深度成像 高分辨率观测性能&#xff1a;满足微观结构的精细研究需求 低光毒性特点&#xff1a;减少对样本的损伤…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

实战三:开发网页端界面完成黑白视频转为彩色视频

​一、需求描述 设计一个简单的视频上色应用&#xff0c;用户可以通过网页界面上传黑白视频&#xff0c;系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观&#xff0c;不需要了解技术细节。 效果图 ​二、实现思路 总体思路&#xff1a; 用户通过Gradio界面上…...