[WPF][Calendar] 月曜日を週の始まりにする方法

スポンサーリンク

概要

WPF のCalendarコントロールを使用して、カレンダーウィジェットで週の始まりを月曜日に設定する方法について説明します。

構文

週の始まりを月曜日に設定するには、FirstDayOfWeekプロパティを使用します。以下は基本的な構文です。

<Calendar FirstDayOfWeek="Monday" />

もちろん、火曜日や水曜日のように曜日を変えることもできます。
この場合は、Tuesday や Wednesday を指定していください。

使用例1:月曜日を週の始まりに設定する

実際の使用例を見てみましょう。以下のXAMLコードでは、カレンダーコントロールの週の始まりを月曜日に設定しています。

<Calendar FirstDayOfWeek="Monday" />
実行例

実行例

使用例2:任意の曜日を週の始まりに設定する

次に示す例は、ComboBoxで月曜日〜日曜日までを選択できるようにし、選択された曜日がカレンダーの週の始まりにする例です。

XMLの例

各ComboBoxItemには、Tag属性を使用して実際の曜日情報を関連付けます。

Calendarコントロールは、初期の週の始まりをFirstDayOfWeekプロパティを使って設定します。この例では、デフォルトで月曜日に設定されていますが、後でComboBoxで選択した曜日に変更されます。

また、ComboBoxのSelectionChangedイベントハンドラを定義します。ComboBoxで新しい曜日を選択すると、このイベントが発生します。

<ComboBox Name="WeekStartComboBox" SelectionChanged="WeekStartComboBox_SelectionChanged">
    <ComboBoxItem Tag="Monday">月曜日</ComboBoxItem>
    <ComboBoxItem Tag="Tuesday">火曜日</ComboBoxItem>
    <ComboBoxItem Tag="Wednesday">水曜日</ComboBoxItem>
    <ComboBoxItem Tag="Thursday">木曜日</ComboBoxItem>
    <ComboBoxItem Tag="Friday">金曜日</ComboBoxItem>
    <ComboBoxItem Tag="Saturday">土曜日</ComboBoxItem>
    <ComboBoxItem Tag="Sunday">日曜日</ComboBoxItem>
</ComboBox>
<Calendar Name="MyCalendar" FirstDayOfWeek="Monday" />

C#の例

C#コードで、ComboBoxのSelectionChangedイベントを処理するイベントハンドラを記述します。選択された曜日はComboBoxの選択項目から取得され、それをDayOfWeekの列挙型に変換します。そして、このDayOfWeekをCalendarコントロールのFirstDayOfWeekプロパティに設定します。

このようにして、ComboBoxで選択した曜日がCalendarコントロールの週の始まりとして正しく連携されます。この方法を使うと、ユーザーはアプリケーション内で週の始まりをカスタマイズできるようになります。

実行例2

実行例2

Please follow and like us:

コメント

タイトルとURLをコピーしました