WPF教学|自定义日期选择控件SmartDate编程全过程 |全干货高级技巧 |进阶Next Level!|GitHub源码公开

WPF教学|自定义日期选择控件SmartDate编程全过程 |全干货高级技巧 |进阶Next Level!|GitHub源码公开

控件名称:SmartDate
作者:Vicky&James
源码链接:https://github.com/vickyqu115/smartdate

Content

  • 教学视频介绍
  • Overview
  • WPF SmartDate
  • 原创教学系列
  • 贡献者介绍
  • 沟通与支持

教学视频介绍

WPF SmartDate 教程我们提供了方便反复学习和练习的教学视频全过程,项目源代码也已经通过GitHub 仓库对外公开。

  • BiliBili:编程全过程+中文配音
  • GitHub: 提供源代码, README.md

Overview

从「构建 ThemeSwitch 白天黑夜切换按钮」开始,这已经是我们 WPF 教程系列的第五期视频了。我们的视频系列主要涵盖了基于 ContentControl 和 ItemsControl 派生的元素,例如按钮、滑块和列表框等。而本期视频,我们将深入探讨像 DatePicker 这样具备复杂功能的控件。因此,相较于前几期,本期视频将更具挑战性。

但也无需过于担心。我们为这个教程视频做了非常详尽的准备,所有的过程、内容和解释都尽可能详细,通过反复观看和实践,将能够熟练掌握视频中介绍的方法和概念。

WPF SmartDate

自 WPF 诞生近20年来,多数基于 Template 的 Control、ContentControl 和 ItemsControl 派生的控件仍然被广泛使用,这些控件几乎不受类、接口和提供的 Dependency Property 属性的限制。这展示了 WPF 设计的精确和实用性。特别是,WPF 的模板和层次结构设计非常适合大多数控件,如按钮、组合框和列表框等。

然而,在处理像 DatePicker 这样要求复杂功能并需要详细定制的控件时,使用基本控件时往往感受到一定的限制。上一期的Riot Slider教程中的 Slider 控件功能单一,模板结构简单,因此剖析该控件的内部结构并进行自定义是一个非常有价值的过程。但相比之下,DatePicker 的内部结构类似于一个小型应用程序,分析和提取其基本模板结构就成为一项非常艰巨的任务。这无疑也为 WPF 的研究和分析提供了绝佳的训练机会。

如果你打算分析并研究 DatePicker 的基本控件结构,这无疑是一个很好的方法。此外,你还可以结合我们这一期的 SmartDate 视频中介绍的控件构成方法,这将大大提升对基本控件的理解以及WPF 编程综合实力。

顺序主要任务主要内容概述
1WPF Application创建程序入口结构和创建及执行 Application 实例 Run()
2WPF Class Library​CustomControl 的基本结构:AssemblyInfo.cs, Generic.xaml, CustomControl
3SmartDate替换 DatePicker 衍生的 CustomControl
4CalendarSwitch从 ToggleButton 衍生的 CustomControl,管理 SmartDate 控制的弹出切换
5Popup包含日历的基本控件
6CalendarBox从 ListBox 衍生的 CustomControl,通过 ItemsPanelTemplate 指定 ItemsPresenter 的容器为 UniformGrid,包括在 ControlTemplate 中的日历移动按钮
7CalendarBoxItem作为 CalendarBox 的 ItemsContainer 的从 ListBoxItem 衍生的 CustomControl
8ChevronButton从按钮衍生的 CustomControl,用于转到前一个或下一个月
9DayOfWeek从标签衍生的 CustomControl,显示一周的日子

通过上述内容可以看出,SmartDate不仅本身采用了CustomControl,其内部的子控件也同样采用了CustomControl设计。这种设计充分展示了WPF CustomControl设计的理念,是一个非常好的示例。

希望通过本期教程视频,大家能详细了解CustomControl的具体实现。如果需要更深入了解Template概念,建议先学习我们之前的RiotSlider教程视频。

原创教程系列

到目前为止,我们已经发布了五期教程系列,具体内容如下:

No.PlatformTitleBiliBili
1WPFTheme SwitchLink
2WPFRiot PlayButtonLink
3WPFMagic Navigation BarLink
4WPFRiot SliderLink
5WPFSmart DateLink

贡献者介绍

大家好,我们是来自中韩的程序员夫妇VickyJames

我们致力于分享高质量的WPF、Blazor以及基于XAML的跨平台编程知识。目前,我们在BiliBili视频网站开设了频道,定期发布各种编程教学视频。从选题策划、示例源代码的准备、记录应用程序的实现过程、进行中英文配音、添加多语言字幕、视频编辑、缩略图制作到视频上传,这一系列工作都由我们亲自完成。视频涉及的源代码也已通过GitHub公开,以供大家学习和使用。在这个分享过程中,我们找到了乐趣和使命感,大家的支持与鼓励也成为了我们持续创作的动力。我们衷心希望通过我们的分享,能够帮助到更多热爱编程的朋友们。

沟通与支持

我们随时保持沟通渠道开放。大家可以通过以下方式与我们互动:

  • GitHub: 关注、Fork、Stars
  • BiliBili: 一键三连
  • 邮箱: james@jamesnet.dev
  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值