Реализовать свою собственную панель Timeline. Это довольно легко!
Панели позволяют полностью управлять планированием своих детей. Например, элемент ItemsControl предоставляет свойство ItemsPanel, которое имеет тип ItemsPanelTemplate. По умолчанию этот элемент ItemsPanelTemplate содержит вертикальную StackPanel, но может быть переопределен вашей удивительной панелью Timeline. Ключом к любой временной шкале является координата x.
Используя код ниже, чтобы подсчитать вашу координату x, выполните в половине битвы. После этого это просто вопрос определения перекрытия, чтобы вы могли правильно складывать свои элементы на временной шкале.
Ускоритель Silverlight от Avanade имеет как контроль временной шкалы, так и элемент управления StackCalendar (думаю, диаграмма Гантта), которые работают очень хорошо.
public double ScaleDate(DateTime date)
{
TimeSpan span = this.StopDate - this.StartDate;
TimeSpan pos = date - this.StartDate;
double posDays = double.Parse(pos.Days.ToString());
double spanDays = double.Parse(span.Days.ToString());
double x = posDays/spanDays;
return x;
}