作成日: 2017/12/15 最終更新日: 2017/12/15
文書種別
使用方法
詳細
Studio for Xamarinのカレンダーコントロールは、標準的なカレンダーを表示し日付選択ができる状態になりカレンダーとしての機能を利用できます。
日本にある多くのカレンダーは、土曜日が青、日曜日が赤で表示されています。
カレンダーをカスタマイズして、曜日の色を変更するには以下のコード記述で実現できます。
曜日、日付ともに対応するイベント内で表示内容を変更します。
曜日を表示する領域(曜日スロット): DayOfWeekSlotLoading
日付を表示する領域(日付スロット): DaySlotLoading
サンプルコード
C#(Xamarin.Forms)
日本にある多くのカレンダーは、土曜日が青、日曜日が赤で表示されています。
カレンダーをカスタマイズして、曜日の色を変更するには以下のコード記述で実現できます。
曜日、日付ともに対応するイベント内で表示内容を変更します。
曜日を表示する領域(曜日スロット): DayOfWeekSlotLoading
日付を表示する領域(日付スロット): DaySlotLoading
サンプルコード
C#(Xamarin.Forms)
public MainPage()
{
InitializeComponent();
// 曜日スロットの処理
calendar.DayOfWeekSlotLoading += (sender, e) =>
{
// 曜日領域に表示する内容を設定
var grid = new Grid();
var label = new Label();
label.TextColor = getColor(e.DayOfWeek);
var dayofweekslot = e.DayOfWeekSlot as Label;
label.Text = dayofweekslot.Text + "曜日";
grid.Children.Add(label);
e.DayOfWeekSlot = grid;
};
// 日付スロットの処理
calendar.DaySlotLoading += (sender, e) =>
{
// 当月カレンダーの処理(前後の月に隣接する日ではない)
if (!e.IsAdjacentDay)
{
// 日付領域に表示する内容を設定
var grid = new Grid();
var label = new Label();
label.TextColor = getColor(e.Date.DayOfWeek);
if (e.Date.Day.ToString() == System.DateTime.Today.Day.ToString())
{
label.FontAttributes = FontAttributes.Bold;
}
label.Text = e.Date.Day.ToString() + "日";
grid.Children.Add(label);
e.DaySlot = grid;
}
};
}
// 曜日で判断して色を返す関数
private Color getColor(System.DayOfWeek dayofWeek)
{
Color color;
switch (dayofWeek)
{
case System.DayOfWeek.Saturday: // 土曜日は青
color = Color.Blue;
break;
case System.DayOfWeek.Sunday: // 日曜日は赤
color = Color.Red;
break;
default:
color = Color.Green; // 既定値は緑
break;
}
return color;
}
旧文書番号
82471