如果您只想显示特定日期的特定活动,可以使用XamForms.Controls.Calendar 中的SpecialDate 来实现,我设置FontSize = 0 使日期不可见并设置Selectable = false 禁用选择行动:
public MainPage()
{
InitializeComponent();
Calendar calendar = new Calendar
{
MaxDate = DateTime.Now.AddDays(30),
MinDate = DateTime.Now.AddDays(-1),
MultiSelectDates = false,
DisableAllDates = false,
WeekdaysShow = true,
ShowNumberOfWeek = true,
ShowNumOfMonths = 1,
EnableTitleMonthYearView = true,
WeekdaysTextColor = Color.Teal,
StartDay = DayOfWeek.Monday,
SelectedTextColor = Color.Fuchsia,
SpecialDates = new List<SpecialDate>{
new SpecialDate(DateTime.Now.AddDays(2))
{
BackgroundColor = Color.White,
TextColor = Color.White,
Selectable = false,
FontSize = 0,
BackgroundPattern = new BackgroundPattern(1)
{
Pattern = new List<Pattern>
{
new Pattern{ WidthPercent = 1f, HightPercent = 1f, Color = Color.White,Text = "4th Saturday", TextColor=Color.DarkBlue, TextSize=8, TextAlign=TextAlign.Middle}
}
}
}
}
};
Content = new ScrollView
{
Content = new StackLayout
{
Padding = new Thickness(5, Device.RuntimePlatform == Device.iOS ? 25 : 5, 5, 5),
Children = {
calendar//,c2
}
}
};
}
结果如下:
如果你想显示所有星期六,你应该自己计算日期并将日期作为参数传递给DateTime.Now.AddDays(2)。