void VistaCalendar_Paint(object sender, PaintEventArgs e) { e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; //背景 e.Graphics.DrawImage(ImageBg, positionRect.ToRectangle()); //绘制日期 StringFormat format = new StringFormat(); format.Alignment = StringAlignment.Center; format.LineAlignment = StringAlignment.Center; e.Graphics.DrawString(strYearMonth, fontDefault, FontBrush, new Rectangle((int)positionRect.X + 10, (int)positionRect.Y + 26, (int)positionRect.Width - 20, 20), format); e.Graphics.DrawString(strDayOfWeek, fontDefault, FontBrush, new Rectangle((int)positionRect.X + 10, (int)positionRect.Y + 106, (int)positionRect.Width - 20, 20), format); e.Graphics.DrawString(strCnYearInfo, fontCnYearInfo, FontBrush, new Rectangle((int)positionRect.X + 10, (int)positionRect.Y + 122, (int)positionRect.Width - 20, 20), format); e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; e.Graphics.DrawString(strDay, fontDay, new SolidBrush(Color.Black), new Rectangle((int)positionRect.X + 12, (int)positionRect.Y + 40, (int)positionRect.Width - 20, 80), format); e.Graphics.DrawString(strDay, fontDay, new SolidBrush(Color.White), new Rectangle((int)positionRect.X + 10, (int)positionRect.Y + 38, (int)positionRect.Width - 20, 80), format); }
/// <summary> /// 绘制该控制点 /// </summary> /// <param name="g"></param> public void Draw(Graphics g) { DrawBorderHandler(g, PositionRect, backColor); if (selected) { //选中时边框变粗 CustomRectangle rect = new CustomRectangle(x - 4, y - 4, 8, 8); g.DrawRectangle(new Pen(Color.Black), rect.ToRectangle()); } }
/// <summary> /// 绘制边框句柄 /// </summary> /// <param name="g"></param> /// <param name="rect"></param> private void DrawBorderHandler(Graphics g, CustomRectangle rect, Color clr) { g.FillRectangle(new SolidBrush(clr), rect.ToRectangleF()); g.DrawRectangle(new Pen(Color.Black), rect.ToRectangle()); }