private Double ConvertTimeToDistance(TimeSpan span) { TimeLineViewLevel lvl = (TimeLineViewLevel)GetValue(ViewLevelProperty); Double unitSize = (Double)GetValue(UnitSizeProperty); Double value = unitSize; switch (lvl) { case TimeLineViewLevel.Seconds: value = span.TotalSeconds * unitSize; break; case TimeLineViewLevel.Minutes: value = span.TotalMinutes * unitSize; break; case TimeLineViewLevel.Hours: value = span.TotalHours * unitSize; break; case TimeLineViewLevel.Days: value = span.TotalDays * unitSize; break; case TimeLineViewLevel.Weeks: value = (span.TotalDays / 7.0) * unitSize; break; case TimeLineViewLevel.Months: value = (span.TotalDays / 30.0) * unitSize; break; case TimeLineViewLevel.Years: value = (span.TotalDays / 365.0) * unitSize; break; default: break; } return(value); }
private void UpdateViewLevel(TimeLineViewLevel lvl) { if (Items == null) return; for (int i = 0; i < Items.Count; i++) { var templatedControl = GetTimeLineItemControlAt(i); if (templatedControl != null) templatedControl.ViewLevel = lvl; } ReDrawChildren(); //Now we go back and have to detect if things have been collapsed }
private TimeSpan ConvertDistanceToTime(Double distance) { TimeLineViewLevel lvl = (TimeLineViewLevel)GetValue(ViewLevelProperty); Double unitSize = (Double)GetValue(UnitSizeProperty); double minutes, hours, days, weeks, months, years, milliseconds = 0; switch (lvl) { case TimeLineViewLevel.Seconds: minutes = (distance / unitSize); //convert to milliseconds milliseconds = minutes * 60000; milliseconds /= 1000; break; case TimeLineViewLevel.Minutes: //value = span.TotalMinutes * unitSize; minutes = (distance / unitSize); //convert to milliseconds milliseconds = minutes * 60000; break; case TimeLineViewLevel.Hours: hours = (distance / unitSize); //convert to milliseconds milliseconds = hours * 60 * 60000; break; case TimeLineViewLevel.Days: days = (distance / unitSize); //convert to milliseconds milliseconds = days * 24 * 60 * 60000; break; case TimeLineViewLevel.Weeks: //value = (span.TotalDays / 7.0) * unitSize; weeks = (7 * distance / unitSize); //convert to milliseconds milliseconds = weeks * 7 * 24 * 60 * 60000; break; case TimeLineViewLevel.Months: months = (30 * distance / unitSize);; //convert to milliseconds milliseconds = months * 30 * 24 * 60 * 60000; break; case TimeLineViewLevel.Years: years = (365 * distance / unitSize); //convert to milliseconds milliseconds = years * 365 * 24 * 60 * 60000; break; default: break; } long ticks = (long)milliseconds * 10000; TimeSpan returner = new TimeSpan(ticks); return(returner); //return new TimeSpan(0, 0, 0, 0, (int)milliseconds); }