Main container class for TimelineBands. It is inherited from Grid, so that timeline band can be places one under another and main band can be maximized.
Inheritance: System.Windows.Controls.Grid, ITimelineToolboxTarget, INotifyPropertyChanged
        void OnCanvasDoubleClick(
            Point point
            )
        {
            DateTime date;

            date = CurrentDateTime +
                   m_calc.PixelsToTimeSpan(point.X - m_canvasPart.ActualWidth / 2);

            TimelineTray.FireTimelineDoubleClick(date, point);
        }
        public TimelineDisplayEvent(
            TimelineEvent e,
            TimelineTray tray,
            TimelineBuilder builder
            )
        {
            if (e.Link == null)
            {
                e.Link = String.Empty;
            }

            if (e.Description == null)
            {
                e.Description = String.Empty;
            }

            m_timelineEvent = e;
            m_selected      = e.Selected;
            m_timelineEvent.PropertyChanged += OnEventPropertyChanged;

            if (e.HeightOverride == -1.0)
            {
                m_eventDescriptionHeight = tray.MainBand.MaxEventHeight;
            }
            else
            {
                m_eventDescriptionHeight = e.HeightOverride;
            }

            if (e.WidthOverride == -1.0)
            {
                m_eventDescriptionWidth = tray.DescriptionWidth;
            }
            else
            {
                m_eventDescriptionWidth = e.WidthOverride;
            }

            if (e.TopOverride != -1)
            {
                SetCalculatedTop(e.TopOverride);
            }

            TimelineBuilder = builder;
            TimelineTray    = tray;

            UpdateDisplayEvent();
        }
        public TimelineDisplayEvent(
            TimelineEvent                               e,
            TimelineTray                                tray,
            TimelineBuilder                             builder
            )
        {
            if (e.Link == null)
            {
                e.Link = String.Empty;
            }

            if (e.Description == null)
            {
                e.Description = String.Empty;
            }

            m_timelineEvent = e;
            m_selected = e.Selected;
            m_timelineEvent.PropertyChanged += OnEventPropertyChanged;

            if (e.HeightOverride == -1.0)
            {
                m_eventDescriptionHeight = tray.MainBand.MaxEventHeight;
            }
            else
            {
                m_eventDescriptionHeight = e.HeightOverride;
            }

            if (e.WidthOverride == -1.0)
            {
                m_eventDescriptionWidth = tray.DescriptionWidth;
            }
            else
            {
                m_eventDescriptionWidth = e.WidthOverride;
            }

            if (e.TopOverride != -1)
            {
                SetCalculatedTop(e.TopOverride);
            }

            TimelineBuilder = builder;
            TimelineTray = tray;

            UpdateDisplayEvent();
        }
 protected virtual void OnTimelineTrayChanged(
     TimelineTray                                old,
     TimelineTray                                newTray
 )
 {
 }
 protected virtual void OnTimelineTrayChanged(
     TimelineTray old,
     TimelineTray newTray
     )
 {
 }