示例#1
0
        public override void RenderElement(DrawingContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            DateTime leftDate     = context.PixelToDate(context.Left).Date;
            DateTime rightDate    = context.PixelToDate(context.Left + context.Width).Date;
            bool     isTopPortion = context.CurrentTop > context.Top;
            float    top          = isTopPortion ? context.CurrentTop : context.Top;
            float    width        = context.TimeSpanToPixel(new TimeSpan(1, 0, 0, 0));
            float    height       = isTopPortion ? context.FreeHeight : context.Height;

            DateTime currentDate = leftDate;

            while (currentDate <= rightDate)
            {
                bool render = false;

                if (_dayOfWeek != null)
                {
                    if (currentDate.DayOfWeek == _dayOfWeek.Value)
                    {
                        render = true;
                    }
                }

                if (_date != null)
                {
                    if (currentDate == _date.Value)
                    {
                        render = true;
                    }
                }

                if (render)
                {
                    GanttStyle style     = this.Style as GanttStyle;
                    RectangleF rectangle = new RectangleF(context.DateToPixel(currentDate), top, width, height);

                    using (Brush backgroundBrush = CreateBackgroundBrush(style))
                        using (Pen borderPen = CreateBorderPen(style))
                        {
                            RenderGanttElement(context, rectangle, backgroundBrush, borderPen);
                        }
                }

                currentDate = currentDate.AddDays(1);
            }
        }
示例#2
0
文件: DayElement.cs 项目: 0anion0/IBN
        public override void RenderElement(DrawingContext context)
        {
            if (context == null)
                throw new ArgumentNullException("context");

            DateTime leftDate = context.PixelToDate(context.Left).Date;
            DateTime rightDate = context.PixelToDate(context.Left + context.Width).Date;
            bool isTopPortion = context.CurrentTop > context.Top;
            float top = isTopPortion ? context.CurrentTop : context.Top;
            float width = context.TimeSpanToPixel(new TimeSpan(1, 0, 0, 0));
            float height = isTopPortion ? context.FreeHeight : context.Height;

            DateTime currentDate = leftDate;
            while (currentDate <= rightDate)
            {
                bool render = false;

                if (_dayOfWeek != null)
                {
                    if (currentDate.DayOfWeek == _dayOfWeek.Value)
                        render = true;
                }

                if (_date != null)
                {
                    if (currentDate == _date.Value)
                        render = true;
                }

                if (render)
                {
                    GanttStyle style = this.Style as GanttStyle;
                    RectangleF rectangle = new RectangleF(context.DateToPixel(currentDate), top, width, height);

                    using (Brush backgroundBrush = CreateBackgroundBrush(style))
                    using (Pen borderPen = CreateBorderPen(style))
                    {
                        RenderGanttElement(context, rectangle, backgroundBrush, borderPen);
                    }
                }

                currentDate = currentDate.AddDays(1);
            }
        }