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); }
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(); }
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(); }
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(); }