mcpField
S
syncfusion-winui-date-picker

syncfusion-winui-date-picker

github.com/syncfusion開発147 回インストール1 週間前に更新
リポジトリ

syncfusion-winui-date-picker について

WinUI 3 向け Syncfusion SfDatePicker の実装ガイドです。日付選択、範囲制限、カレンダーのローカライズ、ドロップダウンスピナーのカスタマイズを扱います。

主な機能

  1. 01日付範囲の制限と選択不可日の設定
  2. 02複数カレンダーとローカライズ
  3. 03表示形式と編集形式の設定
  4. 04ドロップダウンとスピナーのカスタマイズ
  5. 05日付変更と検証イベント

活用シーン

  1. 01日付を制限した予約スケジュールの作成
  2. 02予約システムで利用不可日を指定
  3. 03ローカライズされた日付入力画面の構築

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/syncfusion/winui-ui-components-skills --skill syncfusion-winui-date-picker

インストール後、Claude Code で/syncfusion-winui-date-pickerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
date-restriction.md
dropdown-customization.md
dropdown-header-customization.md
getting-started.md
localization-formatting.md
spinner-customization.md

詳細

WinUI DatePicker(SfDatePicker)

Syncfusion WinUI DatePicker コントロールを実装するための包括的なガイドです。ドロップダウン式のスピナー、複数の日付形式、日付の制限、豊富なカスタマイズオプションを備えた、直感的でタッチ操作に適した日付選択コントロールです。

このスキルを使用する場面

次のような場合に、このスキルを使用してください。

  • WinUI デスクトップアプリケーションに日付入力コントロールを追加する
  • ドロップダウン式のカレンダースピナーを備えた日付ピッカーを実装する
  • 日付選択を特定の範囲に制限する、または特定の日付を除外する
  • 複数の暦体系(ヘブライ暦、ヒジュラ暦、ペルシャ暦など)をサポートする
  • 日付の表示形式と編集形式をカスタマイズする
  • RTL をサポートするローカライズ済みの日付ピッカーを実装する
  • タッチ操作に適した日付選択インターフェイスを作成する
  • カスタムルールで日付入力を検証する
  • ドロップダウンの外観と動作をカスタマイズする
  • 日付選択イベントと検証を処理する

コンポーネントの概要

SfDatePicker コントロールは、WinUI 3 デスクトップアプリケーションにモダンな日付入力エクスペリエンスを提供します。編集可能なテキストフィールドとドロップダウン式の日付スピナーを組み合わせ、さまざまな日付形式、暦の種類、検証ルールをサポートします。

主な特長:

  • タッチ操作に適したドロップダウン式の日付スピナーインターフェイス
  • 複数の日付形式に対応(表示形式と編集形式)
  • 日付範囲の制限(MinDate、MaxDate)
  • 特定の日付を除外するブラックアウト日付
  • 複数の暦の種類(グレゴリオ暦、ヘブライ暦、ヒジュラ暦、ペルシャ暦など)
  • ローカライズと RTL のサポート
  • マスク編集モードと自由形式編集モード
  • カスタマイズ可能なドロップダウン UI とスピナーセル
  • 組み込みの検証機能と透かしテキスト
  • XAML と C# による構成をサポート

パッケージ: Syncfusion.Editors.WinUI
名前空間: Syncfusion.UI.Xaml.Editors
コントロール: SfDatePicker

ドキュメントとナビゲーションガイド

はじめに

📄 参照: references/getting-started.md

初期設定と基本的な使い方については、こちらから始めてください。

  • Syncfusion.Editors.WinUI パッケージのインストール
  • XAML と C# コードへの SfDatePicker の追加
  • 選択した日付の設定と取得(SelectedDate プロパティ)
  • ドロップダウンからの日付の対話的な選択
  • null 値の有効化(AllowNull プロパティ)
  • プレースホルダーテキスト(透かし)の追加
  • ヘッダーと説明の設定
  • ヘッダーテンプレートのカスタマイズ
  • 日付変更イベントの処理(SelectedDateChanged)
日付の制限

📄 参照: references/date-restriction.md

日付選択の制限と検証方法を学びます。

  • 最小および最大の日付範囲の設定(MinDate、MaxDate)
  • BlackoutDates コレクションによる特定の日付の除外
  • 日付の動的な無効化(DateFieldItemPrepared イベント)
  • プログラムによる週末の日付の除外
  • 即時選択のための送信ボタンの非表示
  • 日付変更のキャンセル(SelectedDateChanging イベント)
  • 日付の検証パターンとエラー処理
ローカライズと書式設定

📄 参照: references/localization-formatting.md

暦の種類、形式、ローカライズを設定します。

  • 暦の種類の変更(CalendarIdentifier:ヘブライ暦、ヒジュラ暦、ペルシャ暦など)
  • RTL 言語のフロー方向の設定
  • Language プロパティによるローカライズ
  • 表示形式のカスタマイズ(DisplayDateFormat)
  • 日、月、年フィールドの書式設定(DayFormat、MonthFormat、YearFormat)
  • 自動修正機能付きのマスク編集モード
  • 自由形式編集モード(EditMode)
  • クリアボタンの表示/非表示(ShowClearButton)
ドロップダウンのカスタマイズ

📄 参照: references/dropdown-customization.md

ドロップダウンボタンとコンテナーをカスタマイズします。

  • ドロップダウンボタン UI のカスタマイズ(DropDownButtonTemplate)
  • ドロップダウンボタンの非表示(ShowDropDownButton)
  • ドロップダウンの配置の変更(DropDownPlacement)
  • プログラムによるドロップダウンの表示(IsOpen プロパティ)
  • ドロップダウンの高さの設定(DropDownHeight)
  • 表示項目数の制御(VisibleItemsCount)
ドロップダウンヘッダーのカスタマイズ

📄 参照: references/dropdown-header-customization.md

ドロップダウンのヘッダー領域を設定します:

  • ドロップダウンヘッダーへのヒントの追加(DropDownHeader)
  • ドロップダウンヘッダーの表示/非表示(ShowDropDownHeader)
  • ヘッダー UI のカスタマイズ(DropDownHeaderTemplate)
  • 列ヘッダーの非表示(ShowColumnHeaders)
  • ヘッダーのレイアウトパターン
スピナーのカスタマイズ

📄 参照: references/spinner-customization.md

日付スピナーのセルと列をカスタマイズします:

  • セルの寸法の設定(ItemWidth、ItemHeight)
  • セル幅の制限(MinItemWidth、MaxItemWidth)
  • スピナーセルのスタイル設定(ItemContainerStyle)
  • カスタムセルテンプレート(ItemTemplate)
  • 条件付きセル表示(ItemTemplateSelector)
  • 列のカスタマイズ(DateFieldPrepared イベント)
  • 個々の日付フィールドの書式設定
  • スピナーでの日付のループを有効化

クイックスタートの例

基本的な DatePicker の設定

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;
        }
    }
}

よく使われるパターン

パターン 1:日付範囲の制限
<editors:SfDatePicker 
    x:Name="datePicker"
    MinDate="2026-01-01"
    MaxDate="2026-12-31"
    Header="Select date within 2026" />
パターン 2:特定の日付の選択を禁止
// 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}" />
パターン 3:日付形式のカスタマイズ
<editors:SfDatePicker 
    DisplayDateFormat="MMMM dd, yyyy"
    DayFormat="{}{day.integer}"
    MonthFormat="{}{month.full}"
    YearFormat="{}{year.full}" />
パターン 4:カレンダーの種類を指定したローカライズ済み DatePicker
<editors:SfDatePicker 
    CalendarIdentifier="HebrewCalendar"
    Language="he-IL"
    FlowDirection="RightToLeft" />
パターン 5:null 値のサポート
<editors:SfDatePicker 
    AllowNull="True"
    SelectedDate="{x:Null}"
    PlaceholderText="Select a date" />
パターン 6:即時選択(送信ボタンなし)
<editors:SfDatePicker 
    ShowSubmitButtons="False" />

主要なプロパティのリファレンス

日付の選択
プロパティ型説明
SelectedDateDateTimeOffset?選択した日付を取得または設定します
AllowNullboolnull 値の選択を許可します
日付の制限
プロパティ型説明
MinDateDateTimeOffset選択可能な最小の日付(既定値:1/1/1921)
MaxDateDateTimeOffset選択可能な最大の日付(既定値:12/31/2121)
BlackoutDatesDateTimeOffsetCollection選択できない日付のコレクション
書式設定
プロパティ型説明
DisplayDateFormatstringエディターでの表示形式(既定値:"d")
DayFormatstringスピナーの日フィールドの書式
MonthFormatstringスピナーの月フィールドの書式
YearFormatstringスピナーの年フィールドの書式
ローカライズ
プロパティ型説明
CalendarIdentifierstringカレンダーの種類(Gregorian、Hebrew、Hijri など)
Languagestringローカライズに使用する言語/カルチャ
ドロップダウンの設定
プロパティ型説明
DropDownHeaderobjectドロップダウンのヘッダーコンテンツ
ShowDropDownHeaderboolドロップダウンヘッダーの表示/非表示を切り替えます
ShowColumnHeadersboolスピナーの列ヘッダーの表示/非表示を切り替えます
ShowDropDownButtonboolドロップダウンボタンの表示/非表示を切り替えます
IsOpenboolプログラムからドロップダウンを開閉します
DropDownHeightdoubleドロップダウンスピナーの高さ
VisibleItemsCountintスピナーに表示する項目数
スピナー項目のサイズ設定
プロパティ型説明
ItemWidthdoubleスピナーセルの幅(既定値:80)
ItemHeightdoubleスピナーセルの高さ(既定値:40)
MinItemWidthdoubleセルの最小幅
MaxItemWidthdoubleセルの最大幅
UI のカスタマイズ
プロパティ型説明
PlaceholderTextstring日付が選択されていない場合の透かしテキスト
Headerobjectコントロールの上に表示するヘッダーコンテンツ
Descriptionobjectコントロールの下に表示する説明テキスト
ItemTemplateDataTemplateスピナーセルのテンプレート
ItemTemplateSelectorDataTemplateSelector条件付きセルテンプレート
ItemContainerStyleStyleスピナーセルのスタイル
ShowClearButtonboolエディターのクリアボタンの表示/非表示を切り替えます
ShowSubmitButtonsboolOK/キャンセルボタンの表示/非表示を切り替えます
編集
プロパティ型説明
EditModeDateTimeEditModeマスクまたは通常の編集モード
イベント
イベント説明
SelectedDateChanged選択した日付が変更されたときに発生します
SelectedDateChanging日付が変更される前に発生します(キャンセル可能)
DateFieldItemPrepared各スピナー項目に対して発生します(カスタマイズ用)
DateFieldPrepared各スピナー列に対して発生します(カスタマイズ用)

一般的なユースケース

ユースケース 1:予約スケジューラー

営業時間のみの予約日を選択するための日付ピッカー:

// 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;
    }
};
ユースケース 2:予約システム

利用できない日付をブラックアウトする日付ピッカー:

// Mark booked dates as unavailable
var bookedDates = GetBookedDatesFromDatabase();
datePicker.BlackoutDates = new DateTimeOffsetCollection();
foreach (var date in bookedDates)
{
    datePicker.BlackoutDates.Add(new DateTimeOffset(date));
}
ユースケース 3:生年月日の入力

過去の日付を入力するための日付ピッカー:

<editors:SfDatePicker 
    Header="Date of Birth"
    MaxDate="{x:Bind CurrentDate}"
    MinDate="1920-01-01"
    DisplayDateFormat="MMMM dd, yyyy" />
ユースケース 4:多言語アプリケーション

RTL を自動検出するローカライズ済みの日付ピッカー:

// Set based on user's locale
datePicker.Language = currentUser.PreferredLanguage;
datePicker.CalendarIdentifier = currentUser.CalendarType;
ユースケース 5:ブランドに合わせたカスタム UI

色とアイコンをカスタマイズした日付ピッカー:

<editors:SfDatePicker>
    <editors:SfDatePicker.DropDownButtonTemplate>
        <DataTemplate>
            <FontIcon Glyph="&#xE787;" Foreground="Blue" />
        </DataTemplate>
    </editors:SfDatePicker.DropDownButtonTemplate>
</editors:SfDatePicker>

その他のリソース


次のステップ: 実装のニーズに応じて上記のドキュメントセクションを選ぶか、基本的なセットアップについては「はじめに」ガイドから始めてください。

コメント