用途
Syncfusion WinUI DatePicker(SfDatePicker)用于在 WinUI 3 桌面应用中实现日期输入与选择。它把可编辑的文本字段与下拉日期微调器(spinner)组合在一起,提供触摸友好的日期选择体验,适合需要日期录入、日期范围限制或特定日期屏蔽的界面。
主要能力
- 日期选择:通过 SelectedDate 属性设置和获取选中日期,支持从下拉微调器交互选择;AllowNull 允许空值,PlaceholderText 提供水印占位文本。
- 日期限制:MinDate、MaxDate 限定可选范围(默认 1/1/1921 至 12/31/2121);BlackoutDates 集合屏蔽特定日期;DateFieldItemPrepared 事件可动态禁用日期(如屏蔽周末);SelectedDateChanging 事件可在日期变更前取消变更。
- 格式与本地化:DisplayDateFormat 控制编辑器显示格式,DayFormat、MonthFormat、YearFormat 控制微调器各字段格式;CalendarIdentifier 支持多种日历类型(公历、希伯来历、回历、波斯历等);Language 用于本地化,FlowDirection 支持 RTL。
- 编辑模式:EditMode 支持掩码(Mask)与自由(Normal)编辑模式,掩码模式带自动纠正;ShowClearButton 控制清除按钮显示。
- 下拉自定义:DropDownButtonTemplate 自定义下拉按钮 UI,ShowDropDownButton 控制按钮显示,DropDownPlacement 控制对齐方式,IsOpen 可编程打开下拉,DropDownHeight 设置下拉高度,VisibleItemsCount 控制可见项数量。
- 下拉头部:DropDownHeader 添加提示内容,ShowDropDownHeader 控制显示,DropDownHeaderTemplate 自定义头部 UI,ShowColumnHeaders 控制列标题显示。
- 微调器自定义:ItemWidth、ItemHeight 设置单元格尺寸,MinItemWidth、MaxItemWidth 限制宽度,ItemContainerStyle 设置样式,ItemTemplate 与 ItemTemplateSelector 自定义单元格模板,DateFieldPrepared 事件可自定义列。
- 事件:SelectedDateChanged、SelectedDateChanging、DateFieldItemPrepared、DateFieldPrepared。
使用方式
控件位于 NuGet 包 Syncfusion.Editors.WinUI,命名空间 Syncfusion.UI.Xaml.Editors,控件类为 SfDatePicker,可通过 XAML 或 C# 配置。
XAML 示例:
<Window x:Class="DatePickerDemo.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:editors="using:Syncfusion.UI.Xaml.Editors">
<Grid>
<editors:SfDatePicker
x:Name="datePicker"
Header="Select Date"
PlaceholderText="Choose a date"
SelectedDate="2026-03-22"
Width="250"
Height="75" />
</Grid>
</Window>
C# 示例:
using Syncfusion.UI.Xaml.Editors;
namespace DatePickerDemo { public sealed partial class MainWindow : Window { public MainWindow() { this.InitializeComponent();
// Creating an instance of the Date Picker control
SfDatePicker sfDatePicker = new SfDatePicker();
this.Content = sfDatePicker;
}
}
}
常见模式包括:日期范围限制(MinDate/MaxDate)、屏蔽特定日期(BlackoutDates)、自定义日期格式(DisplayDateFormat、DayFormat、MonthFormat、YearFormat)、本地化与日历类型(CalendarIdentifier、Language、FlowDirection)、空值支持(AllowNull)、立即选择(ShowSubmitButtons="False")。
适用场景
- 预约排期:仅允许选择工作日,屏蔽周末。
- 预订系统:用 BlackoutDates 标记不可用日期。
- 出生日期录入:限制 MaxDate 为当前日期,MinDate 为历史日期。
- 多语言应用:根据用户区域设置 Language 与 CalendarIdentifier。
- 品牌化界面:通过 DropDownButtonTemplate 等自定义外观。
限制
资料未提供该控件的收费、价格、平台兼容性细节、性能数据或效果保证;具体支持范围与授权方式请以官方文档为准。