mcpField
S
syncfusion-wpf-calendar

syncfusion-wpf-calendar

github.com/syncfusionデザイン・UI5158 回インストール1 週間前に更新
リポジトリ

syncfusion-wpf-calendar について

WPF 開発者向けに、アプリで日付を選択・管理する Syncfusion CalendarEdit の実装を解説します。単日・複数日選択、日付制限、表示の切り替え、外観のカスタマイズを扱います。

主な機能

  1. 01単日・複数日選択
  2. 02日・月・年・十年単位の表示切り替え
  3. 03最小日付と最大日付の制限
  4. 04特定の日付や期間の選択禁止
  5. 05色、ブラシ、アニメーションのカスタマイズ
  6. 06RTL とカルチャーのサポート

活用シーン

  1. 01予約やイベントの日付選択画面の構築
  2. 02フォームで選択可能な日付範囲を制限
  3. 03利用不可の日付を選択対象から除外
  4. 04複数日選択対応カレンダーの作成

インストール

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

$npx skills add https://github.com/syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-calendar

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

同梱ファイル

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

references/
appearance.md
date-selection.md
getting-started.md
navigation.md
restrict-dates.md

詳細

WPF カレンダー(CalendarEdit)実装ガイド

CalendarEdit コントロールは、WPF アプリケーションで日付を選択、管理するための包括的なカレンダー UI を提供します。単一または複数の日付選択、日付範囲の制限、外観のカスタマイズに加え、日表示から 10 年表示までの強力なナビゲーションモードに対応しています。

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

  • 日付選択: ユーザーが単一または複数の日付を選択できるようにする場合
  • カレンダー UI: 月や年を切り替えられるカレンダーコントロールを構築する場合
  • 日付の制限: 日付範囲の制約を実装したり、特定の日付を選択不可にしたりする場合
  • スケジュール管理: 予約、予定、イベントを選択するインターフェイスを作成する場合
  • 日付操作: 日付計算(指定した日数や月数の加算など)にカレンダーのメソッドを使用する場合
  • 外観のカスタマイズ: カレンダーの色、ブラシ、視覚プロパティをスタイル設定する場合
  • 多言語サポート: RTL(右から左)レイアウトや異なるカルチャに対応する場合

コンポーネントの概要

主な機能:

  • 0 年から 9999 年までの日付に対応
  • 単一および複数の日付選択モード
  • 日、月、年、10 年単位のナビゲーション表示
  • 最小/最大日付の制約と選択不可日付の設定
  • 色、ブラシ、アニメーションをカスタマイズ可能
  • RTL とカルチャに対応
  • スムーズな切り替えを実現する組み込みアニメーション

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

はじめに

📄 参照: references/getting-started.md

  • インストールとアセンブリの設定
  • デザイナー、XAML、C# を使用した CalendarEdit の追加
  • 基本的なコントロール構造と初期設定
日付選択

📄 参照: references/date-selection.md

  • 単一の日付を選択する(マウスクリックとプログラムによる選択)
  • 複数の日付を選択する(ドラッグ選択と Ctrl+クリック)
  • Date プロパティと SelectedDates プロパティを操作する
ナビゲーション機能

📄 参照: references/navigation.md

  • 日、月、年、10 年単位の各モードを切り替える
  • ヘッダーのナビゲーション、キーボードショートカット、アニメーションを制御する
  • ヘッダーの外観とアニメーションのタイミングをカスタマイズする
日付選択の制限

📄 参照: references/restrict-dates.md

  • 日付範囲の制約を設定する(MinDate と MaxDate)
  • 範囲外の日付を非表示にする、または表示する
  • すべての日付選択を無効にする、または特定の日付範囲を選択不可にする
外観とカスタマイズ

📄 参照: references/appearance.md

  • 前景色、背景色、ブラシの色をカスタマイズする
  • RTL レイアウトとフロー方向に対応する
  • 日付計算に使用する Calendar オブジェクトのメソッド

クイックスタート

基本的な XAML の設定
<Window x:Class="CalendarDemo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
        Title="Calendar Demo" Height="450" Width="500">
    <Grid>
        
        <syncfusion:CalendarEdit Name="calendarEdit"
                                 Height="250"
                                 Width="300"
                                 VerticalAlignment="Center"
                                 HorizontalAlignment="Center"/>
    </Grid>
</Window>
基本的な C# の設定
using Syncfusion.Windows.Shared;

CalendarEdit calendarEdit = new CalendarEdit();
calendarEdit.Height = 250;
calendarEdit.Width = 300;

// Get selected date
DateTime selectedDate = calendarEdit.Date;

// Set selected date programmatically
calendarEdit.Date = new DateTime(2024, 3, 15);

よく使われるパターン

パターン 1:範囲を制限した単一日付の選択
// Allow only dates in March 2024
calendarEdit.MinDate = new DateTime(2024, 3, 1);
calendarEdit.MaxDate = new DateTime(2024, 3, 31);
calendarEdit.Date = new DateTime(2024, 3, 15);

// Get the selected date
DateTime selectedDate = calendarEdit.Date;
パターン 2:複数の日付の選択
// Enable multiple date selection
calendarEdit.AllowMultiplySelection = true;

// Select multiple dates by dragging or Ctrl+clicking
// Retrieve all selected dates
var selectedDates = calendarEdit.SelectedDates;
パターン 3:特定の日付を選択不可にする(選択不可日付)
// Block specific date ranges
calendarEdit.BlackoutDates.Add(new DateTime(2024, 3, 5));
calendarEdit.BlackoutDates.Add(new DateTime(2024, 3, 20));

// Users cannot select these dates
calendarEdit.Date = new DateTime(2024, 3, 15);
パターン 4:カレンダーの外観をカスタマイズする
using System.Windows.Media;

// Customize colors
calendarEdit.Foreground = Brushes.Blue;
calendarEdit.Background = Brushes.White;
calendarEdit.MouseOverForeground = Brushes.Red;
calendarEdit.MouseOverBackground = Brushes.Lavender;

// Customize header
calendarEdit.HeaderBackground = Brushes.Green;
calendarEdit.HeaderForeground = Brushes.Yellow;

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

プロパティ型説明
DateDateTime現在選択されている日付を取得または設定します
SelectedDatesCollection複数選択モードで選択されているすべての日付を取得します
AllowMultiplySelectionbool複数の日付選択を有効または無効にします
MinDateDateTime選択できる最も早い日付を設定します
MaxDateDateTime選択できる最も遅い日付を設定します
BlackoutDatesCollection選択できない日付を含みます
DisableDateSelectionbool日付の選択を無効にします(月と年は引き続き選択できます)
MinMaxHiddenboolMinDate/MaxDate の範囲外の日付を非表示にします
HeaderBackgroundBrushヘッダーの背景色をカスタマイズします
HeaderForegroundBrushヘッダーのテキスト色をカスタマイズします
ChangeModeTimeintモード変更時のアニメーション時間(ms)
FrameMovingTimeint月の切り替え時のアニメーション時間(ms)

次のステップ: 実装する内容に応じて、上記からリファレンスファイルを選択してください。CalendarEdit を初めてセットアップする場合は、「はじめに」から始めてください。

コメント