Если вы просто хотите отобразить определенную активность в определенный день, вы можете использовать SpecialDate
в XamForms.Controls.Calendar
, чтобы добиться этого, я установил 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)
.