Xaml-calender

提供:Dev Guides
移動先:案内検索

XAML-カレンダー

カレンダーは、ユーザーが視覚的なカレンダー表示を使用して日付を選択できるようにするコントロールを表します。 マウスまたはキーボードを使用した基本的なナビゲーション機能を提供します。 Calendarクラスの階層継承は次のとおりです-

カレンダー階層

プロパティ

以下は、Calendarクラスの最も一般的に使用されるプロパティです。

Sr.No. Properties & Description
1

BlackoutDates

選択不可としてマークされている日付のコレクションを取得します。

2

CalendarButtonStyle

コントロールの内部CalendarButtonオブジェクトに関連付けられたスタイルを取得または設定します。

3

CalendarDayButtonStyle

コントロールの内部CalendarDayButtonオブジェクトに関連付けられたスタイルを取得または設定します。

4

CalendarItemStyle

コントロールの内部CalendarItemオブジェクトに関連付けられたスタイルを取得または設定します。

5

DisplayDate

表示する日付を取得または設定します。

6

DisplayDateEnd

カレンダーで利用可能な日付範囲の最後の日付を取得または設定します。

7

DisplayDateStart

カレンダーで利用可能な最初の日付を取得または設定します。

8

DisplayMode

カレンダーに月、年、または年を表示するかどうかを示す値を取得または設定します。

9

FirstDayOfWeek

週の始まりと見なされる日を取得または設定します。

10

IsTodayHighlighted

現在の日付が強調表示されているかどうかを示す値を取得または設定します。

11

SelectedDate

現在選択されている日付を取得または設定します。

12

SelectedDates

選択した日付のコレクションを取得します。

13

SelectionMode

許可される選択の種類を示す値を取得または設定します。

方法

以下は、Calendarクラスの一般的に使用されるメソッドです。

Sr.No. Method & Description
1

OnApplyTemplate

新しいテンプレートが適用されたときに、カレンダーコントロールのビジュアルツリーを構築します。 (FrameworkElement.OnApplyTemplate()をオーバーライドします)

2

ToString

選択した日付のテキスト表現を提供します。 (Control.ToString()をオーバーライドします)

イベント

以下は、Calendarクラスで一般的に使用されるイベントです。

Sr.No. Event & Description
1

DisplayDateChanged

DisplayDateプロパティが変更されたときに発生します。

2

DisplayModeChanged

DisplayModeプロパティが変更されたときに発生します。

3

SelectedDatesChanged

SelectedDatesプロパティによって返されるコレクションが変更されたときに発生します。

4

SelectionModeChanged

SelectionModeが変更されたときに発生します。

次の例には、選択項目とブラックアウト日付を含むカレンダーコントロールが含まれています。 ブラックアウト日以外の日付をクリックすると、プログラムはその日付でタイトルを更新します。

これは、いくつかのプロパティとクリックイベントでカレンダーが作成されるXAMLコードです。

<Window x:Class = "XAMLCalendar.MainWindow"
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
   Title = "MainWindow" Height = "350" Width = "604">

   <Grid>
      <StackPanel Orientation = "Horizontal">
         <!--
            Create a Calendar that displays dates through
            Januarary 31, 2015 and has dates that are not selectable.
         -->

         <Calendar Margin = "20" SelectionMode = "MultipleRange"
            IsTodayHighlighted = "false"
            DisplayDate = "1/1/2015"
            DisplayDateEnd = "1/31/2015"
            SelectedDatesChanged = "Calendar_SelectedDatesChanged"
            xmlns:sys = "clr-namespace:System;assembly = mscorlib">

            <Calendar.BlackoutDates>
               <CalendarDateRange Start = "1/2/2015" End = "1/4/2015"/>
               <CalendarDateRange Start = "1/9/2015" End = "1/9/2015"/>
               <CalendarDateRange Start = "1/16/2015" End = "1/16/2015"/>
               <CalendarDateRange Start = "1/23/2015" End = "1/25/2015"/>
               <CalendarDateRange Start = "1/30/2015" End = "1/30/2015"/>
            </Calendar.BlackoutDates>

            <Calendar.SelectedDates>
               <sys:DateTime>1/5/2015</sys:DateTime>
               <sys:DateTime>1/12/2015</sys:DateTime>
               <sys:DateTime>1/14/2015</sys:DateTime>
               <sys:DateTime>1/13/2015</sys:DateTime>
               <sys:DateTime>1/15/2015</sys:DateTime>
               <sys:DateTime>1/27/2015</sys:DateTime>
               <sys:DateTime>4/2/2015</sys:DateTime>
            </Calendar.SelectedDates>
         </Calendar>

      </StackPanel>
   </Grid>
</Window>

C#でのselectイベントの実装は次のとおりです。

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;

namespace XAMLCalendar {
  ///<summary>
     ///Interaction logic for MainWindow.xaml
  ///</summary>
   public partial class MainWindow : Window {
      public MainWindow() {
         InitializeComponent();
      }
      private void Calendar_SelectedDatesChanged(object sender, SelectionChangedEventArgs e) {
         var calendar = sender as Calendar;

        //... See if a date is selected.
         if (calendar.SelectedDate.HasValue) {
           //... Display SelectedDate in Title.
            DateTime date = calendar.SelectedDate.Value;
            this.Title = date.ToShortDateString();
         }
      }
   }
}

上記のコードをコンパイルして実行すると、次の画面が表示されます-

カレンダー出力

上記のサンプルコードを実行し、他のいくつかのプロパティとイベントを試すことをお勧めします。