private void ArrangeCalendarDecorations(RadRect rect) { this.EnsureCalendarDecorations(); double cellWidth = rect.Width / this.ColumnCount; double cellHeight = rect.Height / this.RowCount; double gridLineThickness = this.Calendar.GridLinesThickness; int gridLineHalfThickness = (int)(gridLineThickness / 2); if ((this.Calendar.GridLinesVisibility & GridLinesVisibility.Horizontal) == GridLinesVisibility.Horizontal) { for (int rowIndex = 1; rowIndex < this.RowCount; rowIndex++) { CalendarGridLine gridLine = this.GetDecorationByRowIndex(rowIndex); gridLine.IsHorizontal = true; // NOTE: We are not respecting rect.X / rect.Width values here for design purposes: // If week numbers are visible the horizontal gridline should start rendering from the week number panel and not the calendar view. gridLine.Arrange(new RadRect(this.layoutSlot.X, rect.Y + rowIndex * cellHeight - gridLineHalfThickness, this.layoutSlot.Width, gridLineThickness)); } } if ((this.Calendar.GridLinesVisibility & GridLinesVisibility.Vertical) == GridLinesVisibility.Vertical) { for (int columnIndex = 1; columnIndex < this.ColumnCount; columnIndex++) { CalendarGridLine gridLine = this.GetDecorationByColumnIndex(columnIndex); gridLine.IsHorizontal = false; gridLine.Arrange(new RadRect(rect.X + columnIndex * cellWidth - gridLineHalfThickness, rect.Y, gridLineThickness, rect.Height)); } } }
private void ArrangeTimerRulerLines(RadRect viewRect) { var calendar = this.Calendar; double heightCoeff = (double)calendar.multiDayViewSettings.TimerRulerTickLength.Ticks / (double)TimeSpan.FromHours(1).Ticks; int tileLinesInterval = calendar.multiDayViewSettings.TimeLinesSpacing; double timeItemHeight = tileLinesInterval * heightCoeff; double gridLineThickness = calendar.GridLinesThickness; int gridLineHalfThickness = (int)(gridLineThickness / 2); for (int hourIndex = 1; hourIndex <= this.timerRulerLines.Count; hourIndex++) { CalendarGridLine timeLine = this.timerRulerLines[hourIndex - 1]; if ((calendar.GridLinesVisibility & GridLinesVisibility.Horizontal) == GridLinesVisibility.Horizontal) { timeLine.Arrange(new RadRect(viewRect.X, viewRect.Y + hourIndex * timeItemHeight - gridLineHalfThickness, viewRect.Width, gridLineThickness)); } } }