Example #1
0
        protected override void OnPaint(PaintEventArgs e)
        {
            BitmapPainter painter = new BitmapPainter(e);
            Graphics      g       = painter.Graphics;

            if (g == null)
            {
                return;
            }

            //
            // Draw the client area and frames
            //

            Rectangle rect = ClientRectangle;

            g.DrawRectangle(CalendarStatics.DarkDarkPen, rect);
            g.FillRectangle(CalendarStatics.WindowBrush, rect);
            g.DrawRectangle(CalendarStatics.DarkDarkPen, rect);
            g.DrawRectangle(CalendarStatics.DarkPen, new Rectangle(rect.Left, rect.Top, rect.Width - 1, rect.Height - 1));
            g.DrawRectangle(CalendarStatics.LightLightPen, new Rectangle(rect.Left, rect.Top, rect.Width - 2, rect.Height - 2));
            g.DrawRectangle(CalendarStatics.ControlPen, new Rectangle(rect.Left + 1, rect.Top + 1, rect.Width - 3, rect.Height - 3));
            g.DrawLine(CalendarStatics.DarkPen, new Point(rect.Left + 2, rect.Top + 2), new Point(rect.Right - 5, rect.Top + 2));
            g.DrawLine(CalendarStatics.DarkPen, new Point(rect.Left + 2, rect.Top + 2), new Point(rect.Left + 2, rect.Bottom - 5));

            painter.Flush();

            base.OnPaint(e);
        }
Example #2
0
        protected override void OnPaint(PaintEventArgs e)
        {
            BitmapPainter v = new BitmapPainter(e);
            Graphics      g = v.Graphics;

            if (g == null)
            {
                return;
            }

            StringFormat.Alignment     = StringAlignment.Center;
            StringFormat.LineAlignment = StringAlignment.Center;

            Rectangle r = ClientRectangle;

            g.FillRectangle(CalendarStatics.ControlBrush, r);

            if (mouseDown)
            {
                g.DrawLine(CalendarStatics.DarkPen, r.Left, r.Top, r.Right - 1, r.Top);
                g.DrawLine(CalendarStatics.DarkPen, r.Left, r.Top, r.Left, r.Bottom - 1);
                g.DrawLine(CalendarStatics.LightLightPen, r.Left, r.Bottom - 1, r.Right - 1, r.Bottom - 1);
                g.DrawLine(CalendarStatics.LightLightPen, r.Right - 1, r.Top, r.Right - 1, r.Bottom - 1);
            }
            else
            {
                g.DrawLine(CalendarStatics.LightLightPen, r.Left, r.Top, r.Right - 1, r.Top);
                g.DrawLine(CalendarStatics.LightLightPen, r.Left, r.Top, r.Left, r.Bottom - 1);
                g.DrawLine(CalendarStatics.DarkPen, r.Left, r.Bottom - 1, r.Right - 1, r.Bottom - 1);
                g.DrawLine(CalendarStatics.DarkPen, r.Right - 1, r.Top, r.Right - 1, r.Bottom - 1);
            }

            g.DrawString(CalendarStatics.TodayString, Font, CalendarStatics.BlackBrush, r.Left + (r.Width / 2), r.Top + (r.Height / 2), StringFormat);

            Point[] p0 = { new Point(6, (ClientSize.Height / 2)), new Point(11, (ClientSize.Height / 2) + 5), new Point(11, (ClientSize.Height / 2) - 5) };
            g.FillPolygon(CalendarStatics.BlackBrush, p0);
            Point[] p1 = { new Point(ClientSize.Width - 6, (ClientSize.Height / 2)), new Point(ClientSize.Width - 11, (ClientSize.Height / 2) + 5), new Point(ClientSize.Width - 11, (ClientSize.Height / 2) - 5) };
            g.FillPolygon(CalendarStatics.BlackBrush, p1);

            v.Flush();
        }
Example #3
0
        protected override void OnPaint(PaintEventArgs e)
        {
            BitmapPainter painter = new BitmapPainter(e);
            Graphics      g       = painter.Graphics;

            if (g == null)
            {
                return;
            }

            //
            // Brushes
            //

            Brush textHightLight  = CalendarStatics.DarkDarkBrush;
            Brush textBrush       = CalendarStatics.WindowTextBrush;
            Brush hightLightBrush = CalendarStatics.ControlBrush;

            //
            // String Format
            //

            _stringFormat.Alignment     = StringAlignment.Center;
            _stringFormat.LineAlignment = StringAlignment.Center;

            //
            // DateTimeFormatInfo
            //

            String[] MonthNames = _formatInfo.MonthNames;


            Rectangle rect = ClientRectangle;

            g.FillRectangle(CalendarStatics.WindowBrush, rect);

            rect.Width--;

            // Paint Calendar Name

            rect.X = 6; rect.Width -= 12; rect.Y = 4; rect.Height = 17;

            g.FillRectangle(hightLightBrush, rect);
            g.DrawString(_calendarName, Font, textBrush, rect, _stringFormat);

            //
            // Paint start, End dates
            //

            string formattedStartDate, formattedEndDate;

            formattedStartDate = _hostedCalendar.GetMonth(_startDate).ToString(CultureInfo.InvariantCulture) + "/" +
                                 _hostedCalendar.GetDayOfMonth(_startDate).ToString(CultureInfo.InvariantCulture) + "/" +
                                 _hostedCalendar.GetYear(_startDate).ToString(CultureInfo.InvariantCulture);

            formattedEndDate = _hostedCalendar.GetMonth(_endDate).ToString(CultureInfo.InvariantCulture) + "/" +
                               _hostedCalendar.GetDayOfMonth(_endDate).ToString(CultureInfo.InvariantCulture) + "/" +
                               _hostedCalendar.GetYear(_endDate).ToString(CultureInfo.InvariantCulture);

            rect.Y += 17;
            g.DrawString(formattedStartDate, Font, textBrush, rect, _stringFormat);
            rect.Y += 17;
            g.DrawString(formattedEndDate, Font, textBrush, rect, _stringFormat);

            //
            // Paint Day of Week title
            //

            rect.Y += 17;

            g.FillRectangle(hightLightBrush, rect);

            rect.X      = 0;
            rect.Width  = CalendarStatics.CellWidth;
            rect.Height = CalendarStatics.CellHeight;

            _stringFormat.Alignment = StringAlignment.Far;

            for (int i = 0; i < _dayNames.GetLength(0); i++)
            {
                rect.X = CalendarStatics.Indent + (CalendarStatics.CellWidth * i);
                g.DrawString(_dayNames[i], Font, textBrush, rect, _stringFormat);
            }

            rect.Y += 19;
            g.DrawLine(CalendarStatics.DarkPen, CalendarStatics.Indent, rect.Y, 132, rect.Y);

            // Paint the days

            DateTime date = new DateTime(_startDate.Year, _startDate.Month, _startDate.Day);
            int      j    = (int)CalendarStatics.gregorian.GetDayOfWeek(date);

            rect.Width = CalendarStatics.CellWidth; rect.Height = CalendarStatics.CellHeight;

            _daysYPosition = rect.Y;

            int whichDay = 1;

            do
            {
                rect.X = CalendarStatics.Indent + (CalendarStatics.CellWidth * j);

                if (whichDay == _markedDay)
                {
                    g.DrawRectangle(CalendarStatics.DarkDarkPen, rect);
                    g.FillRectangle(CalendarStatics.DarkBrush, rect);
                }
                whichDay++;

                g.DrawString(_hostedCalendar.GetDayOfMonth(date).ToString(CultureInfo.InvariantCulture), Font, textBrush, rect, _stringFormat);

                j++;

                if (j == 7)
                {
                    j       = 0;
                    rect.Y += CalendarStatics.CellHeight + 2;
                }

                date = date.AddDays(1);
            } while (date < _endDate);

            if (date <= _hostedCalendar.MaxSupportedDateTime)
            {
                rect.X = CalendarStatics.Indent + (CalendarStatics.CellWidth * j);

                if (whichDay == _markedDay)
                {
                    g.DrawRectangle(CalendarStatics.DarkDarkPen, rect);
                    g.FillRectangle(CalendarStatics.DarkBrush, rect);
                }

                g.DrawString(_hostedCalendar.GetDayOfMonth(date).ToString(CultureInfo.InvariantCulture), Font, textBrush, rect, _stringFormat);
            }

            rect.Y += 19;
            g.DrawLine(CalendarStatics.DarkPen, CalendarStatics.Indent, rect.Y, 132, rect.Y);

            //
            // Draw the Era and month names
            //
            _stringFormat.Alignment = StringAlignment.Near;

            rect.X     = CalendarStatics.Indent;
            rect.Y    += 2;
            rect.Width = CalendarStatics.ClientWidth - rect.X;

            int era = _hostedCalendar.GetEra(_startDate);

            g.DrawString("Era: " + era.ToString(CultureInfo.InvariantCulture) + " " + _formatInfo.GetEraName(era), Font, textBrush, rect, _stringFormat);

            rect.Y += 17;

            if (_canBeOptionalCalendar)
            {
                formattedStartDate = _startDate.ToString("MMMM", _formatInfo) + " ~ " + _endDate.ToString("MMMM", _formatInfo);
                g.DrawString(formattedStartDate, Font, textBrush, rect, _stringFormat);
            }

            painter.Flush();

            // Year TextBox
            SetYearText();
        }
Example #4
0
        private void PaintDates(Graphics graphics, bool paintBackground)
        {
            if (graphics == null)
            {
                return;
            }

            BitmapPainter painter = new BitmapPainter(graphics, ClientRectangle);
            Graphics      g       = painter.Graphics;

            if (g == null)
            {
                return;
            }

            _stringFormat.Alignment = StringAlignment.Center;

            string currentDateTime = "Calendars Today's Date" + Environment.NewLine + DateTime.Now.ToString(CultureInfo.InvariantCulture);

            if (paintBackground)
            {
                SizeF stringSize = g.MeasureString(
                    currentDateTime,
                    _font,
                    ClientRectangle.Width,
                    _stringFormat);

                int x = (int)((ClientRectangle.Width - Math.Ceiling(stringSize.Width)) / 2);

                g.FillRectangle(
                    _windowBrush,
                    new Rectangle(
                        x,
                        ClientRectangle.Y,
                        x + (int)Math.Ceiling(stringSize.Width),
                        ClientRectangle.Y + (int)Math.Ceiling(stringSize.Height)));

                for (int i = 0; i < CalendarStatics.CalendarsInfo.Length; i += 2)
                {
                    g.FillRectangle(
                        CalendarStatics.ControlBrush,
                        new Rectangle(
                            1,
                            i * _dateHeight + _dateYPos,
                            ClientRectangle.Width - 2,
                            _dateHeight));
                }
            }

            g.DrawString(
                currentDateTime,
                _font,
                Brushes.Black,
                ClientRectangle,
                _stringFormat);

            if (_today != DateTime.Today)
            {
                _today = DateTime.Today;
                ResetDateLabels();
            }

            painter.Flush();
        }