예제 #1
0
        /// <summary>
        /// Draw the specified area with the specified Drawing toolkit tk.
        /// </summary>
        /// <param name="tk">IDrawingToolkit.</param>
        /// <param name="area">Area.</param>
        public override void Draw(IDrawingToolkit tk, Area area)
        {
            double linepos;

            if (!UpdateDrawArea(tk, area, Area))
            {
                return;
            }

            tk.Begin();
            if (needle == null)
            {
                needle = tk.CreateSurfaceFromIcon(Icons.TimelineNeedleUP);
            }

            if (Selected)
            {
                tk.FillColor   = App.Current.Style.ThemeContrastDisabled;
                tk.StrokeColor = App.Current.Style.ThemeContrastDisabled;
            }
            else
            {
                tk.FillColor   = LineColor;
                tk.StrokeColor = LineColor;
            }
            tk.LineWidth = Sizes.TimelineLineSize;

            linepos = OffsetY + Height / 2 + Sizes.TimelineLineSize / 2;

            if (StopX - StartX <= needle.Width / 2)
            {
                double c = movingPos == SelectionPosition.Left ? StopX : StartX;
                tk.DrawSurface(new Point(c - needle.Width / 2, linepos - 9), Sizes.TimelineNeedleUpWidth,
                               Sizes.TimelineNeedleUpHeight, needle, ScaleMode.AspectFit);
            }
            else
            {
                tk.DrawLine(new Point(StartX, linepos),
                            new Point(StopX, linepos));
                tk.DrawSurface(new Point(StartX - needle.Width / 2, linepos - 9), Sizes.TimelineNeedleUpWidth,
                               Sizes.TimelineNeedleUpHeight, needle, ScaleMode.AspectFit);
                tk.DrawSurface(new Point(StopX - needle.Width / 2, linepos - 9), Sizes.TimelineNeedleUpWidth,
                               Sizes.TimelineNeedleUpHeight, needle, ScaleMode.AspectFit);
            }

            if (ShowName)
            {
                tk.FontSize    = Sizes.TimelineFontSize;
                tk.FontWeight  = FontWeight.Bold;
                tk.FillColor   = App.Current.Style.TextBaseDisabled;
                tk.StrokeColor = App.Current.Style.TextBaseDisabled;
                tk.DrawText(new Point(StartX, OffsetY), StopX - StartX, Height / 2, TimeNode.Name);
            }
            tk.End();
        }