public MyCalendarDayView(Context context, MyCalendarView calendarView, CalendarViewModel viewModel) : base(context) { _calendarView = calendarView; _viewModel = viewModel; int margin = ThemeHelper.AsPx(Context, 1); Clickable = true; LayoutParameters = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.MatchParent); _backgroundView = new View(Context) { LayoutParameters = new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MatchParent, FrameLayout.LayoutParams.MatchParent) { TopMargin = margin, LeftMargin = margin, RightMargin = margin, BottomMargin = margin } }; base.AddView(_backgroundView); _backgroundOverlayView = new View(Context) { LayoutParameters = new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MatchParent, FrameLayout.LayoutParams.MatchParent) { TopMargin = margin, LeftMargin = margin, RightMargin = margin, BottomMargin = margin }, Visibility = ViewStates.Gone }; base.AddView(_backgroundOverlayView); var padding = ThemeHelper.AsPx(Context, 4); _myHomeworkCircles = new MyHomeworkCircles(Context) { LayoutParameters = new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MatchParent, FrameLayout.LayoutParams.WrapContent) { Gravity = GravityFlags.Bottom, LeftMargin = padding, BottomMargin = padding, RightMargin = padding } }; this.AddView(_myHomeworkCircles); _tv = new TextView(Context) { Gravity = GravityFlags.Top | GravityFlags.Right, LayoutParameters = new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MatchParent, FrameLayout.LayoutParams.WrapContent) { TopMargin = ThemeHelper.AsPx(Context, 2), RightMargin = padding } }; _defaultTextColors = _tv.TextColors; this.AddView(_tv); _selectedRectangleView = new View(Context) { LayoutParameters = new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MatchParent, FrameLayout.LayoutParams.MatchParent), Visibility = ViewStates.Gone }; _selectedRectangleView.Background = ContextCompat.GetDrawable(Context, Resource.Drawable.CalendarSelectedDayBorder); ViewCompat.SetBackgroundTintList(_selectedRectangleView, new ColorStateList(new int[][] { new int[0] }, new int[] { ColorTools.GetColor(this.Context, Resource.Color.accent) })); this.AddView(_selectedRectangleView); this.Click += MyCalendarDayView_Click; UpdateSelectedStatus(); _calendarView.SelectedDateChanged += new WeakEventHandler <EventArgs>(_calendarView_SelectedDateChanged).Handler; }