[Xuni:Calendar]カレンダーに祝日を設定する方法(Xamarin.Forms)

文書番号 : 82029     文書種別 : HowTo
登録日 : 2017/03/03     最終更新日 : 2017/03/03

対象製品

Xuni

詳細

祝日は国や地域によって異なるので標準機能では提供していないため、日付で判断して設定する処理が必要がです。

祝日に設定したい日付の情報を取得すれば、カレンダーに反映できます。 
シンプルに日付の色を赤に設定する方法は簡単に実現します。

カレンダーの日付領域をカスタマイズするには、DaySlotLoadingイベントで処理します。
以下の例では、元旦(1月1日)の場合に、文字色を赤に設定しています。

サンプルコード
C#(Xamarin.Forms)
public partial class HolidaySimple : ContentPage
{
    public HolidaySimple()
    {
        InitializeComponent();
        Title = "1月1日の文字を変更";

        // 初期表示を2017年1月に設定
        calendar.DisplayDate = DateTime.Parse("2017/1/1");

        // 日付領域を操作するイベント
        calendar.DaySlotLoading += (object sender, Xuni.Forms.Calendar.CalendarDaySlotLoadingEventArgs e) =>
        {
            // 1月1日の場合のみ処理対象とする
            if (e.Date.Day == 1 && e.Date.Month == 1)
            {
                // 日付領域を取得
                var dayslot = e.DaySlot as Xuni.Forms.Calendar.CalendarDaySlot;
                // テキスト色とサイズを変更
                dayslot.DayTextColor = Color.Red;
                dayslot.DayFontSize = 20;
                // 日付の変わりに「元旦」と表示
                dayslot.DayText = "元旦";
            }
        };
    }
}





実際には、祝日のリストをアプリの中に読み込んで、設定された日付で判断して処理する必要があります。
その方法を解説した技術記事がありますので、詳細はこちらを参照ください。

Xuni > 技術情報 > ComponentOne Information 
「内閣府が公開した国民の祝日をカレンダーに表示する」