protected override Size MeasureOverride(Size availableSize) { var singleColSize = new ColumnMeasure(availableSize); var sorter = CalendarBarSorter(singleColSize.MeasureElement); sorter.SortDates(NonCollapsedChildren()); return(new Size(availableSize.Width, sorter.TotalHeight)); }
protected override Size ArrangeOverride(Size finalSize) { var singleColSize = new ColumnMeasure(finalSize); var sorter = CalendarBarSorter(PlaceSingleItem); rowHeights = sorter.SortDates(NonCollapsedChildren()); return(new Size(finalSize.Width, sorter.TotalHeight)); double PlaceSingleItem(FrameworkElement item, int column, int width, double yOffset) { item.Arrange(new Rect(singleColSize.ColumnOffset(column), yOffset, singleColSize.MultiColWidth(width), item.DesiredSize.Height)); return(item.DesiredSize.Height); } }
public ClickToDayComputer(DateTime firstDayOnCalendar, double width, IList <double> rowHeights) { columnMeasure = new ColumnMeasure(new Size(width, 20)); this.firstDayOnCalendar = firstDayOnCalendar; this.rowHeights = rowHeights; }