
syncfusion-winui-date-picker
Implements Syncfusion WinUI DatePicker (SfDatePicker) control for date input and selection in desktop applications. Use this when building date input controls, calendar dropdown pickers, or date selection interfaces. This skill covers date restrictions, date formatting, calendar types, dropdown spinners, localization, and blackout dates for WinUI applications.
- Installs
- 47
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/syncfusion/winui-ui-components-skills --skill syncfusion-winui-date-picker- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads syncfusion-winui-date-picker automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
WinUI DatePicker (SfDatePicker)
A comprehensive guide for implementing the Syncfusion WinUI DatePicker control - an intuitive, touch-friendly date selection control with dropdown spinner, multiple date formats, date restrictions, and extensive customization options.
When to Use This Skill
Use this skill when you need to:
- Add date input controls to WinUI desktop applications
- Implement date pickers with dropdown calendar spinners
- Restrict date selection to specific ranges or block certain dates
- Support multiple calendar systems (Hebrew, Hijri, Persian, etc.)
- Customize date display and edit formats
- Implement localized date pickers with RTL support
- Create touch-friendly date selection interfaces
- Validate date input with custom rules
- Customize dropdown appearance and behavior
- Handle date selection events and validation
Component Overview
The SfDatePicker control provides a modern date input experience for WinUI 3 desktop applications. It combines an editable text field with a dropdown date spinner, supporting various date formats, calendar types, and validation rules.
Key Characteristics:
- Touch-friendly dropdown date spinner interface
- Multiple date format support (display and edit formats)
- Date range restrictions (MinDate, MaxDate)
- Blackout dates for blocking specific dates
- Multiple calendar types (Gregorian, Hebrew, Hijri, Persian, etc.)
- Localization and RTL support
- Mask and free-form editing modes
- Customizable dropdown UI and spinner cells
- Built-in validation and watermark text
- XAML and C# configuration support
Package: Syncfusion.Editors.WinUI
Namespace: Syncfusion.UI.Xaml.Editors
Control: SfDatePicker
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
Start here for initial setup and basic usage:
- Installing Syncfusion.Editors.WinUI package
- Adding SfDatePicker to XAML and C# code
- Setting and getting selected date (SelectedDate property)
- Interactive date selection from dropdown
- Enabling null values (AllowNull property)
- Adding placeholder text (watermark)
- Configuring header and description
- Customizing header template
- Handling date changed events (SelectedDateChanged)
Date Restriction
📄 Read: references/date-restriction.md
Learn how to restrict and validate date selection:
- Setting minimum and maximum date ranges (MinDate, MaxDate)
- Blocking specific dates with BlackoutDates collection
- Dynamically disabling dates (DateFieldItemPrepared event)
- Blocking weekend dates programmatically
- Hiding submit buttons for immediate selection
- Canceling date changes (SelectedDateChanging event)
- Date validation patterns and error handling
Localization and Formatting
📄 Read: references/localization-formatting.md
Configure calendar types, formats, and localization:
- Changing calendar type (CalendarIdentifier: Hebrew, Hijri, Persian, etc.)
- Setting flow direction for RTL languages
- Localizing with Language property
- Customizing display format (DisplayDateFormat)
- Formatting day, month, year fields (DayFormat, MonthFormat, YearFormat)
- Mask editing mode with auto-correction
- Free-form editing mode (EditMode)
- Showing/hiding clear button (ShowClearButton)
Dropdown Customization
📄 Read: references/dropdown-customization.md
Customize the dropdown button and container:
- Customizing dropdown button UI (DropDownButtonTemplate)
- Hiding dropdown button (ShowDropDownButton)
- Changing dropdown alignment (DropDownPlacement)
- Opening dropdown programmatically (IsOpen property)
- Setting dropdown height (DropDownHeight)
- Controlling visible items count (VisibleItemsCount)
Dropdown Header Customization
📄 Read: references/dropdown-header-customization.md
Configure the dropdown header area:
- Adding hints in dropdown header (DropDownHeader)
- Showing/hiding dropdown header (ShowDropDownHeader)
- Customizing header UI (DropDownHeaderTemplate)
- Hiding column headers (ShowColumnHeaders)
- Header layout patterns
Spinner Customization
📄 Read: references/spinner-customization.md
Customize the date spinner cells and columns:
- Setting cell dimensions (ItemWidth, ItemHeight)
- Restricting cell width (MinItemWidth, MaxItemWidth)
- Styling spinner cells (ItemContainerStyle)
- Custom cell templates (ItemTemplate)
- Conditional cell appearance (ItemTemplateSelector)
- Customizing columns (DateFieldPrepared event)
- Formatting individual date fields
- Enabling date looping in spinner
Quick Start Example
Basic DatePicker Setup
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;
}
}
}
Common Patterns
Pattern 1: Date Range Restriction
<editors:SfDatePicker
x:Name="datePicker"
MinDate="2026-01-01"
MaxDate="2026-12-31"
Header="Select date within 2026" />
Pattern 2: Blocking Specific Dates
// In ViewModel or code-behind
public DateTimeOffsetCollection BlockedDates { get; set; }
public void InitializeBlockedDates()
{
BlockedDates = new DateTimeOffsetCollection();
BlockedDates.Add(new DateTimeOffset(new DateTime(2026, 12, 25))); // Christmas
BlockedDates.Add(new DateTimeOffset(new DateTime(2026, 1, 1))); // New Year
}
<editors:SfDatePicker
BlackoutDates="{Binding BlockedDates}" />
Pattern 3: Custom Date Format
<editors:SfDatePicker
DisplayDateFormat="MMMM dd, yyyy"
DayFormat="{}{day.integer}"
MonthFormat="{}{month.full}"
YearFormat="{}{year.full}" />
Pattern 4: Localized DatePicker with Calendar Type
<editors:SfDatePicker
CalendarIdentifier="HebrewCalendar"
Language="he-IL"
FlowDirection="RightToLeft" />
Pattern 5: Null Value Support
<editors:SfDatePicker
AllowNull="True"
SelectedDate="{x:Null}"
PlaceholderText="Select a date" />
Pattern 6: Immediate Selection (No Submit Button)
<editors:SfDatePicker
ShowSubmitButtons="False" />
Key Properties Reference
Date Selection
| Property | Type | Description |
|---|---|---|
SelectedDate | DateTimeOffset? | Gets or sets the selected date |
AllowNull | bool | Allows null value selection |
Date Restriction
| Property | Type | Description |
|---|---|---|
MinDate | DateTimeOffset | Minimum selectable date (default: 1/1/1921) |
MaxDate | DateTimeOffset | Maximum selectable date (default: 12/31/2121) |
BlackoutDates | DateTimeOffsetCollection | Collection of blocked dates |
Formatting
| Property | Type | Description |
|---|---|---|
DisplayDateFormat | string | Display format in editor (default: "d") |
DayFormat | string | Day field format in spinner |
MonthFormat | string | Month field format in spinner |
YearFormat | string | Year field format in spinner |
Localization
| Property | Type | Description |
|---|---|---|
CalendarIdentifier | string | Calendar type (Gregorian, Hebrew, Hijri, etc.) |
Language | string | Language/culture for localization |
Dropdown Configuration
| Property | Type | Description |
|---|---|---|
DropDownHeader | object | Header content in dropdown |
ShowDropDownHeader | bool | Shows/hides dropdown header |
ShowColumnHeaders | bool | Shows/hides spinner column headers |
ShowDropDownButton | bool | Shows/hides dropdown button |
IsOpen | bool | Opens/closes dropdown programmatically |
DropDownHeight | double | Height of dropdown spinner |
VisibleItemsCount | int | Number of visible items in spinner |
Spinner Item Sizing
| Property | Type | Description |
|---|---|---|
ItemWidth | double | Width of spinner cells (default: 80) |
ItemHeight | double | Height of spinner cells (default: 40) |
MinItemWidth | double | Minimum cell width |
MaxItemWidth | double | Maximum cell width |
UI Customization
| Property | Type | Description |
|---|---|---|
PlaceholderText | string | Watermark text when no date selected |
Header | object | Header content above control |
Description | object | Description text below control |
ItemTemplate | DataTemplate | Template for spinner cells |
ItemTemplateSelector | DataTemplateSelector | Conditional cell templates |
ItemContainerStyle | Style | Style for spinner cells |
ShowClearButton | bool | Shows/hides clear button in editor |
ShowSubmitButtons | bool | Shows/hides OK/Cancel buttons |
Editing
| Property | Type | Description |
|---|---|---|
EditMode | DateTimeEditMode | Mask or Normal editing mode |
Events
| Event | Description |
|---|---|
SelectedDateChanged | Fires when selected date changes |
SelectedDateChanging | Fires before date changes (cancelable) |
DateFieldItemPrepared | Fires for each spinner item (for customization) |
DateFieldPrepared | Fires for each spinner column (for customization) |
Common Use Cases
Use Case 1: Appointment Scheduler
Date picker for selecting appointment dates with working hours only:
// Block weekends and restrict to business days
datePicker.DateFieldItemPrepared += (s, e) =>
{
if (e.ItemInfo.DateTime.Value.DayOfWeek == DayOfWeek.Saturday ||
e.ItemInfo.DateTime.Value.DayOfWeek == DayOfWeek.Sunday)
{
e.ItemInfo.IsEnabled = false;
}
};
Use Case 2: Booking System
Date picker with blackout dates for unavailable dates:
// Mark booked dates as unavailable
var bookedDates = GetBookedDatesFromDatabase();
datePicker.BlackoutDates = new DateTimeOffsetCollection();
foreach (var date in bookedDates)
{
datePicker.BlackoutDates.Add(new DateTimeOffset(date));
}
Use Case 3: Birth Date Entry
Date picker for entering historical dates:
<editors:SfDatePicker
Header="Date of Birth"
MaxDate="{x:Bind CurrentDate}"
MinDate="1920-01-01"
DisplayDateFormat="MMMM dd, yyyy" />
Use Case 4: Multi-Language Application
Localized date picker with automatic RTL detection:
// Set based on user's locale
datePicker.Language = currentUser.PreferredLanguage;
datePicker.CalendarIdentifier = currentUser.CalendarType;
Use Case 5: Custom Branded UI
Date picker with custom colors and icons:
<editors:SfDatePicker>
<editors:SfDatePicker.DropDownButtonTemplate>
<DataTemplate>
<FontIcon Glyph="" Foreground="Blue" />
</DataTemplate>
</editors:SfDatePicker.DropDownButtonTemplate>
</editors:SfDatePicker>
Additional Resources
- NuGet Package: Syncfusion.Editors.WinUI
- Official Documentation: WinUI DatePicker Docs
- GitHub Examples: SyncfusionExamples/syncfusion-winui-tools-datepicker-examples
Next Steps: Choose a documentation section above based on your implementation needs, or start with the Getting Started guide for basic setup.
FAQ
What does the syncfusion-winui-date-picker skill do?
Implements Syncfusion WinUI DatePicker (SfDatePicker) control for date input and selection in desktop applications. Use this when building date input controls, calendar dropdown pickers, or date selection interfaces. This skill covers date restrictions, date formatting, calendar types, dropdown spinners, localization, and blackout dates for WinUI applications.
How do I install syncfusion-winui-date-picker?
Run npx skills add https://github.com/syncfusion/winui-ui-components-skills --skill syncfusion-winui-date-picker in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/syncfusion-winui-date-picker/ (personal) or .claude/skills/syncfusion-winui-date-picker/ (project).
Which AI agents can use syncfusion-winui-date-picker?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is syncfusion-winui-date-picker safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains syncfusion-winui-date-picker?
It is published by syncfusion in syncfusion/winui-ui-components-skills. It has 47 recorded installs.
More from syncfusion/winui-ui-components-skills
syncfusion-winui-getting-started
syncfusion/winui-ui-components-skills
Comprehensive guide for setting up Syncfusion WinUI components, including license registration, NuGet package installation, system requirements verification, and troubleshooting. Use this skill when users need help with Syncfusion licensing, installation, WinUI component configuration, theme setup, or resolving installation errors.
syncfusion-winui-datagrid
syncfusion/winui-ui-components-skills
Guide for implementing Syncfusion WinUI DataGrid (SfDataGrid) for tabular data display in desktop applications. Use this skill when working with data grids, sorting, filtering, grouping, or CRUD operations. Covers data binding, column configuration, master-details views, Excel export, and performance optimization including data virtualization and custom templates.
syncfusion-winui-badge
syncfusion/winui-ui-components-skills
Open the skill to read its SKILL.md instructions.
syncfusion-winui-treeview
syncfusion/winui-ui-components-skills
Comprehensive guide for implementing Syncfusion WinUI TreeView (SfTreeView) control in desktop applications. Use this skill when working with hierarchical data display, tree structures, or node-based navigation. Covers TreeView implementation for file explorers, organization charts, category browsers, and expandable/collapsible data visualization in WinUI applications.
syncfusion-winui-numberbox
syncfusion/winui-ui-components-skills
Learn to implement Syncfusion WinUI NumberBox (SfNumberBox) control for numeric input with validation, custom formatting, and value restrictions. Use this skill when you need numeric input fields with currency, percentage, or decimal formatting in WinUI applications.
syncfusion-winui-treegrid
syncfusion/winui-ui-components-skills
Guide for implementing Syncfusion WinUI TreeGrid (SfTreeGrid) components for displaying hierarchical or self-relational data. Use this skill when working with tree-structured grids, parent-child data relationships, or expandable grid rows. Covers TreeGrid features for organizational charts, file system displays, and multi-level data representation in WinUI applications.
Popular productivity & automation skills
agent-browser
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
lark-doc
open.feishu.cn
飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。
lark-base
open.feishu.cn
飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。
lark-drive
open.feishu.cn
飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。
lark-shared
open.feishu.cn
Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.
lark-im
open.feishu.cn
飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。