SuperAPI AI 工具集

syncfusion-winui-calendar-date-picker

编程与开发

查看项目

更新于 10-16 02:18

技能介绍

Syncfusion WinUI Calendar Date Picker 技能用于在 WinUI 3 桌面应用中实现 SfCalendarDatePicker 控件。该控件把文本编辑框与下拉日历组合在一起,用户可以通过键盘输入日期,也可以展开日历点选日期,并支持触摸操作。

用途 适用于需要日期输入与日历下拉选择的 WinUI 应用。典型需求包括:用可视化日历界面选择日期、通过最小/最大日期或屏蔽日期限制可选范围、定制日历外观与行为、支持多种日历系统(公历、希伯来历、伊斯兰历等)、显示周数、在月/年/十年/世纪视图间导航、为不同文化创建本地化日期选择器、处理日期验证与选择事件、屏蔽周末或节假日等特定日期。

主要能力

  • 日期选择:支持下拉日历选择或键盘输入,可通过 SelectedDate 获取或设置日期,AllowNull 允许空值。
  • 日期限制:MinDate 与 MaxDate 限制可选范围(默认分别为 1/1/1920 和 12/31/2120);BlackoutDates 集合屏蔽指定日期;CalendarItemPrepared 事件可实现动态屏蔽(例如周末或节假日),并可为特定日期设置自定义显示文本。
  • 日历系统与本地化:CalendarIdentifier 支持 Gregorian、Hebrew、Hijri、Korean、Taiwan、Thai、Persian、UmAlQura;Language 属性控制区域性显示;DisplayDateFormat、DayFormat、MonthFormat、DayOfWeekFormat、MonthHeaderFormat 等控制格式;FirstDayOfWeek 设置每周起始日;NumberOfWeeksInView 控制可见周数。
  • 视图导航:DisplayMode(Month、Year、Decade、Century),以及 MinDisplayMode、MaxDisplayMode 限制视图范围;支持键盘导航(Tab、方向键、Ctrl+方向键、PageUp/Down、Home/End)与鼠标交互。
  • 周数显示:ShowWeekNumbers 启用周数;WeekNumberRule(FirstDay、FirstFourDayWeek、FirstFullWeek)决定一年第一周的规则;WeekNumberFormat 与 WeekNumberTemplate、WeekNameTemplate 用于自定义格式和外观。
  • UI 定制:PlaceholderText 水印、ShowClearButton、DropDownPlacement、DropDownWidth/DropDownHeight、OutOfScopeVisibility、SelectionHighlightMode(Outline/Filled)、SelectionShape(Circle/Rectangle)、自定义项模板、主题键与 CalendarItem 样式定制。
  • 事件:SelectedDateChanged、SelectedDateChanging 等选择事件,以及内置验证。

使用方式 通过 NuGet 安装:Install-Package Syncfusion.Calendar.WinUI。随后可在 XAML 中声明控件并设置属性,例如:

<Window xmlns:calendar="using:Syncfusion.UI.Xaml.Calendar"> <Grid> <calendar:SfCalendarDatePicker x:Name="calendarDatePicker" Header="Select Date" PlaceholderText="Choose a date" SelectedDate="{x:Bind ViewModel.SelectedDate, Mode=TwoWay}" MinDate="2024-01-01" MaxDate="2024-12-31" DisplayDateFormat="MM/dd/yyyy" /> </Grid> </Window>

也可在 C# 中创建并配置:

using Syncfusion.UI.Xaml.Calendar;

SfCalendarDatePicker datePicker = new SfCalendarDatePicker(); datePicker.Header = "Select Date"; datePicker.PlaceholderText = "Choose a date"; datePicker.SelectedDate = DateTimeOffset.Now; datePicker.MinDate = new DateTimeOffset(new DateTime(2024, 1, 1)); datePicker.MaxDate = new DateTimeOffset(new DateTime(2024, 12, 31)); datePicker.DisplayDateFormat = "MM/dd/yyyy";

datePicker.SelectedDateChanged += (s, e) => { var oldDate = e.OldDate; var newDate = e.NewDate; };

this.Content = datePicker;

常见模式包括:限制为当前年份范围、通过 CalendarItemPrepared 屏蔽周末、将视限制为年/十年以用于信用卡有效期选择(DisplayDateFormat="MM/yyyy")、以及设置 HebrewCalendar 与 he-IL 语言等实现本地化。

适用场景 WinUI 3 桌面应用中的表单日期录入、预约与日程选择、交易或业务系统内的日期范围约束输入、需要多语言与多日历文化支持的国际化界面,以及需要屏蔽特定日期的业务规则场景。

限制 该技能面向 WinUI 3 桌面应用;需依赖 Syncfusion.Calendar.WinUI NuGet 包。资料未提供授权与收费方式、平台兼容版本、性能指标及具体安装步骤的更多细节,这些内容暂未提供。