Example #1
0
        public void ShowMonths()
        {
            Device.BeginInvokeOnMainThread(() =>
            {
                Content = null;
                ContentView.Children.Clear();
                var columDef = new ColumnDefinition {
                    Width = new GridLength(1, GridUnitType.Star)
                };
                var rowDef = new RowDefinition {
                    Height = new GridLength(1, GridUnitType.Star)
                };
                var details = new Grid {
                    VerticalOptions = LayoutOptions.CenterAndExpand, RowSpacing = 0, ColumnSpacing = 0, Padding = 1, BackgroundColor = BorderColor
                };
                details.ColumnDefinitions = new ColumnDefinitionCollection {
                    columDef, columDef, columDef
                };
                details.RowDefinitions = new RowDefinitionCollection {
                    rowDef, rowDef, rowDef, rowDef
                };
                for (int r = 0; r < 4; r++)
                {
                    for (int c = 0; c < 3; c++)
                    {
                        var b = new CalendarButton
                        {
                            HorizontalOptions = LayoutOptions.CenterAndExpand,
                            VerticalOptions   = LayoutOptions.CenterAndExpand,
                            Text            = DateTimeFormatInfo.CurrentInfo.MonthNames[(r * 3) + c],
                            Date            = new DateTime(StartDate.Year, (r * 3) + c + 1, 1).Date,
                            BackgroundColor = DatesBackgroundColor,
                            TextColor       = DatesTextColor,
                            FontSize        = DatesFontSize,
                            BorderWidth     = BorderWidth,
                            BorderColor     = BorderColor,
                            FontAttributes  = DatesFontAttributes,
                            WidthRequest    = ContentView.Width / 3 - BorderWidth,
                            HeightRequest   = ContentView.Height / 4 - BorderWidth
                        };

                        b.Clicked += (sender, e) =>
                        {
                            MonthYearButtonCommand?.Execute((sender as CalendarButton).Date.Value);
                            MonthYearButtonClicked?.Invoke(sender, new DateTimeEventArgs {
                                DateTime = (sender as CalendarButton).Date.Value
                            });
                            if (EnableTitleMonthYearView)
                            {
                                StartDate = (sender as CalendarButton).Date.Value;
                                PrevMonthYearView();
                            }
                        };

                        details.Children.Add(b, c, r);
                    }
                }
                details.WidthRequest  = w;
                details.HeightRequest = h;
                ContentView.Children.Add(details);
                CalendarViewType          = DateTypeEnum.Month;
                TitleLeftArrow.IsVisible  = false;
                TitleRightArrow.IsVisible = false;
                Content = MainView;
            });
        }
 public void ShowYears() => Device.BeginInvokeOnMainThread(() =>
 {
     Content = null;
     contentView.Children.Clear();
     yearButtons.Clear();
     var columDef = new ColumnDefinition {
         Width = new GridLength(1, GridUnitType.Star)
     };
     var rowDef = new RowDefinition {
         Height = new GridLength(1, GridUnitType.Star)
     };
     var details = new Grid {
         VerticalOptions = LayoutOptions.CenterAndExpand, RowSpacing = 0, ColumnSpacing = 0, Padding = 1, BackgroundColor = BorderColor
     };
     details.ColumnDefinitions = new ColumnDefinitionCollection {
         columDef, columDef, columDef, columDef
     };
     details.RowDefinitions = new RowDefinitionCollection {
         rowDef, rowDef, rowDef, rowDef
     };
     for (var r = 0; r < YearsRow; r++)
     {
         for (var c = 0; c < YearsColumn; c++)
         {
             var t = (r * YearsColumn) + c + 1;
             var b = new CalendarButton
             {
                 HorizontalOptions = LayoutOptions.CenterAndExpand,
                 VerticalOptions   = LayoutOptions.CenterAndExpand,
                 Text            = string.Format("{0}", StartDate.Year + (t - (YearsColumn * YearsRow / 2))),
                 Date            = new DateTime(StartDate.Year + (t - (YearsColumn * YearsRow / 2)), StartDate.Month, 1).Date,
                 BackgroundColor = DatesBackgroundColor,
                 TextColor       = DatesTextColor,
                 FontSize        = DatesFontSize,
                 FontAttributes  = DatesFontAttributes,
                 BorderWidth     = BorderWidth,
                 BorderColor     = BorderColor,
                 WidthRequest    = (contentView.Width / YearsRow) - BorderWidth,
                 HeightRequest   = contentView.Height / YearsColumn - BorderWidth
             };
             b.Clicked += (sender, e) =>
             {
                 MonthYearButtonCommand?.Execute((sender as CalendarButton).Date.Value);
                 MonthYearButtonClicked?.Invoke(sender, new DateTimeEventArgs {
                     DateTime = (sender as CalendarButton).Date.Value
                 });
                 if (EnableTitleMonthYearView)
                 {
                     StartDate = (sender as CalendarButton).Date.Value;
                     PrevMonthYearView();
                 }
             };
             yearButtons.Add(b);
             details.Children.Add(b, c, r);
         }
     }
     details.WidthRequest  = w;
     details.HeightRequest = h;
     contentView.Children.Add(details);
     CalendarViewType          = DateTypeEnum.Year;
     TitleLeftArrow.IsVisible  = true;
     TitleRightArrow.IsVisible = true;
     Content = mainView;
 });