public Grid CreateWeekGrid(string ActiveDate, int ActiveWeekDay) { int ActiveDay = int.Parse(CalendarClass.DayNumber(ActiveDate)); var grdTemp = new Grid(); grdTemp.RowDefinitions.Add(new RowDefinition { Height = 30 * FixParams.AspectRate }); grdTemp.RowDefinitions.Add(new RowDefinition { Height = 40 * FixParams.AspectRate }); grdTemp.RowSpacing = 0; grdTemp.ColumnSpacing = 2 * FixParams.AspectRate; grdTemp.Padding = 2 * FixParams.AspectRate; grdTemp.BackgroundColor = FixParams.PanelColor; for (int i = 0; i < 7; i++) { grdTemp.Children.Add(new Label { TextColor = FixParams.AlterFontColor, BackgroundColor = FixParams.PanelColor, Text = " " + CalendarClass.ShortDayNames[6 - i], XAlign = TextAlignment.Center, YAlign = TextAlignment.Center, FontSize = FixParams.StandardSize }, i, 0); var clr = new Color(); if (ActiveWeekDay == i) clr = FixParams.SpecFontColor; else clr = FixParams.FontColor; var lblDayNum = new MyLabel { TextColor = clr, BackgroundColor = FixParams.BackgroundColor, Text = " " + CalendarClass.DayNumber(CalendarClass.AddDayToDate(ActiveDate, i - ActiveWeekDay).ToString()), XAlign = TextAlignment.Center, YAlign = TextAlignment.Center, FontSize = FixParams.MediumSize, Property1 = i.ToString(), Property2 = CalendarClass.AddDayToDate(ActiveDate, i - ActiveWeekDay).ToString() }; if (CalendarClass.IsHolyDay(CalendarClass.DateToDateTime(lblDayNum.Property2))) lblDayNum.TextColor = FixParams.AlterFontColor; if (i==6) lblDayNum.TextColor = FixParams.AlterFontColor; lblDayNum.GestureRecognizers.Add(new TapGestureRecognizer { Command = new Command(() => { _ActiveDate = lblDayNum.Property2; _ActiveWeekDay = int.Parse(lblDayNum.Property1); DayNumber.Text = lblDayNum.Text; DayName.Text = CalendarClass.WeekDayName(_ActiveWeekDay); MonthName.Text = CalendarClass.MonthName(_ActiveDate) + " ماه " + CalendarClass.YearName(_ActiveDate); grdWeekDays = CreateWeekGrid(_ActiveDate, _ActiveWeekDay); Animateview(_pnlDayNote, 400); _layout.Children.Remove(DayNumber); _layout.Children.Remove(DayName); _layout.Children.Remove(MonthName); _layout.Children.Remove(grdWeekDays); _layout.Children.Add(DayNumber, Constraint.RelativeToParent((p) => { return _layout.Width - (65 * FixParams.AspectRate); }), Constraint.RelativeToParent((p) => { return 5 * FixParams.AspectRate; }), Constraint.RelativeToParent((p) => { return 60 * FixParams.AspectRate; }), Constraint.RelativeToParent((p) => { return 55 * FixParams.AspectRate; }) ); _layout.Children.Add(MonthName, Constraint.RelativeToParent((p) => { return _layout.Width - (180 * FixParams.AspectRate); }), Constraint.RelativeToParent((p) => { return 1 * FixParams.AspectRate; }), Constraint.RelativeToParent((p) => { return 120 * FixParams.AspectRate; }), Constraint.RelativeToParent((p) => { return 30 * FixParams.AspectRate; }) ); _layout.Children.Add(DayName, Constraint.RelativeToParent((p) => { return _layout.Width - (180 * FixParams.AspectRate); }), Constraint.RelativeToParent((p) => { return 25 * FixParams.AspectRate; }), Constraint.RelativeToParent((p) => { return 120 * FixParams.AspectRate; }), Constraint.RelativeToParent((p) => { return 30 * FixParams.AspectRate; }) ); _layout.Children.Add(grdWeekDays, Constraint.RelativeToParent((p) => { return 10 * FixParams.AspectRate; }), Constraint.RelativeToParent((p) => { return DayNumber.Height; }), Constraint.RelativeToParent((p) => { return _layout.Width - (20 * FixParams.AspectRate); }), Constraint.RelativeToParent((p) => { return 75 * FixParams.AspectRate; }) ); for (int j = 11; j >= 6; j--) grdPryingTimes.Children.RemoveAt(j); prayer _prayer = new prayer(); _prayer.UpdatePryTimes(_ActiveDate); grdPryingTimes.Children.Add(new Label { FontSize = FixParams.SmallSize, Text = prayer._MP, XAlign = TextAlignment.Center, YAlign = TextAlignment.Center, TextColor = FixParams.FontColor, BackgroundColor = FixParams.BackgroundColor }, 5, 1); grdPryingTimes.Children.Add(new Label { FontSize = FixParams.SmallSize, Text = prayer._SR, XAlign = TextAlignment.Center, YAlign = TextAlignment.Center, TextColor = FixParams.FontColor, BackgroundColor = FixParams.BackgroundColor }, 4, 1); grdPryingTimes.Children.Add(new Label { FontSize = FixParams.SmallSize, Text = prayer._MD, XAlign = TextAlignment.Center, YAlign = TextAlignment.Center, TextColor = FixParams.FontColor, BackgroundColor = FixParams.BackgroundColor }, 3, 1); grdPryingTimes.Children.Add(new Label { FontSize = FixParams.SmallSize, Text = prayer._SS, XAlign = TextAlignment.Center, YAlign = TextAlignment.Center, TextColor = FixParams.FontColor, BackgroundColor = FixParams.BackgroundColor }, 2, 1); grdPryingTimes.Children.Add(new Label { FontSize = FixParams.SmallSize, Text = prayer._NP, XAlign = TextAlignment.Center, YAlign = TextAlignment.Center, TextColor = FixParams.FontColor, BackgroundColor = FixParams.BackgroundColor }, 1, 1); grdPryingTimes.Children.Add(new Label { FontSize = FixParams.SmallSize, Text = prayer._MN, XAlign = TextAlignment.Center, YAlign = TextAlignment.Center, TextColor = FixParams.FontColor, BackgroundColor = FixParams.BackgroundColor }, 0, 1); _pnlDayNote.Children.Clear(); lblNote.Text = CalendarClass.Events(CalendarClass.DateToDateTime(_ActiveDate)); if (CalendarClass.IsHolyDay(CalendarClass.DateToDateTime(_ActiveDate))) lblNote.TextColor = FixParams.AlterFontColor; _pnlDayNote.Children.Add(lblNote); }), NumberOfTapsRequired = 1 }); grdTemp.Children.Add(lblDayNum, 6 - i, 1); } return grdTemp; }