/// <summary> /// </summary> /// <exception cref="ArgumentNullException"> /// <para> /// <paramref name="g"/> is <see langword="null"/>. /// </para> /// -or- /// <para> /// <paramref name="text"/> is <see langword="null"/>. /// </para> /// -or- /// <para> /// <paramref name="font"/> is <see langword="null"/>. /// </para> /// </exception> public void DrawText( Graphics g, Rectangle bounds, NuGenControlState state, string text, Font font, Color foreColor, ContentAlignment textAlignment ) { if (g == null) { throw new ArgumentNullException("g"); } if (text == null) { throw new ArgumentNullException("text"); } if (font == null) { throw new ArgumentNullException("font"); } using (StringFormat sf = NuGenControlPaint.ContentAlignmentToStringFormat(textAlignment)) { sf.HotkeyPrefix = HotkeyPrefix.Show; sf.Trimming = StringTrimming.EllipsisCharacter; sf.FormatFlags = StringFormatFlags.NoWrap; this.DrawText(g, bounds, state, text, font, foreColor, sf); } }
/// <summary> /// </summary> /// <param name="paintParams"></param> /// <exception cref="ArgumentNullException"> /// <para><paramref name="paintParams"/> is <see langword="null"/>.</para> /// </exception> public void DrawText(NuGenTextPaintParams paintParams) { if (paintParams == null) { throw new ArgumentNullException("paintParams"); } using (SolidBrush sb = new SolidBrush(paintParams.ForeColor)) using (StringFormat sf = NuGenControlPaint.ContentAlignmentToStringFormat(paintParams.TextAlign)) { paintParams.Graphics.DrawString(paintParams.Text, paintParams.Font, sb, paintParams.Bounds, sf); } }
/// <summary> /// </summary> /// <param name="paintParams"></param> /// <exception cref="ArgumentNullException"> /// <para><paramref name="paintParams"/> is <see langword="null"/>.</para> /// </exception> public void DrawItem(NuGenItemPaintParams paintParams) { if (paintParams == null) { throw new ArgumentNullException("paintParams"); } Graphics g = paintParams.Graphics; Rectangle bounds = paintParams.Bounds; NuGenControlState state = paintParams.State; ContentAlignment align = paintParams.ContentAlign; Image image = paintParams.Image; string text = paintParams.Text; /* Background */ NuGenListBoxRenderer.DrawItemBackground(g, bounds, state, paintParams.BackgroundColor); /* Image */ Rectangle imageBounds = NuGenItemService.GetImageBounds(bounds, image, align); if (image != null) { this.DrawImage(g, imageBounds, state, image); } /* Text */ if (text != null) { using (StringFormat sf = NuGenControlPaint.ContentAlignmentToStringFormat(align)) { sf.FormatFlags = StringFormatFlags.NoWrap; sf.Trimming = StringTrimming.EllipsisCharacter; this.DrawText( g, NuGenItemService.GetTextBounds(bounds, imageBounds, align), state, text, paintParams.Font, paintParams.ForeColor, sf ); } } }
protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Graphics g = e.Graphics; using (SolidBrush sb = new SolidBrush(Settings.Default.PenColor)) using (StringFormat sf = NuGenControlPaint.ContentAlignmentToStringFormat(ContentAlignment.MiddleCenter)) { g.DrawString( _countDownBlock.CurrentSpan.ToString() , this.Font , sb , this.ClientRectangle , sf ); } }
/* * DrawItem */ private new void DrawItem(NuGenItemPaintParams paintParams) { Debug.Assert(paintParams != null, "paintParams != null"); Graphics g = paintParams.Graphics; Rectangle bounds = paintParams.Bounds; NuGenControlState state = paintParams.State; Image image = paintParams.Image; ContentAlignment align = paintParams.ContentAlign; string text = paintParams.Text; Rectangle imageBounds = Rectangle.Empty; if (image != null) { imageBounds = NuGenSmoothNavigationBarRenderer.GetLargeImageBounds(bounds, image, align); this.DrawImage(g, imageBounds, state, image); } Rectangle textBounds = NuGenSmoothNavigationBarRenderer.GetTextRectangle(bounds, imageBounds, align); if (text != null) { using (StringFormat sf = NuGenControlPaint.ContentAlignmentToStringFormat(align)) { sf.FormatFlags = StringFormatFlags.NoWrap; sf.Trimming = StringTrimming.EllipsisCharacter; this.DrawText( g, textBounds, state, text, paintParams.Font, paintParams.ForeColor, sf ); } } }
internal void Draw(Graphics e, NuGenDateItem queryInfo) { StringFormat dateAlign = new StringFormat(); StringFormat textAlign = new StringFormat(); Font boldFont = new Font(m_month.DateFont.Name, m_month.DateFont.Size, m_month.DateFont.Style | FontStyle.Bold); Color bgColor1 = m_month.Colors.Days.BackColor1; Color bgColor2 = m_month.Colors.Days.BackColor2; NuGenGradientMode gradientMode = m_month.Colors.Days.GradientMode; Color textColor = m_month.Colors.Days.Text; Color dateColor = m_month.Colors.Days.Date; Brush dateBrush = new SolidBrush(dateColor); Brush textBrush = new SolidBrush(textColor); Brush bgBrush = new SolidBrush(bgColor1); string dateString; m_imageRect = new Rectangle(); string text = ""; bool drawDay = false; bool enabled = true; Image bgImage = null; int i = -1; bool boldedDate = false; NuGenDateItem[] info; m_dayImage = null; dateAlign = NuGenControlPaint.ContentAlignmentToStringFormat(m_month.DateAlign); textAlign = NuGenControlPaint.ContentAlignmentToStringFormat(m_month.TextAlign); if ((m_month.SelectedMonth.Month == m_date.Month) || (m_month.Calendar.ShowTrailingDates)) { drawDay = true; } if (((m_date.DayOfWeek == DayOfWeek.Saturday) && (m_month.Colors.Weekend.Saturday)) || ((m_date.DayOfWeek == DayOfWeek.Sunday) && (m_month.Colors.Weekend.Sunday))) { bgColor1 = m_month.Colors.Weekend.BackColor1; bgColor2 = m_month.Colors.Weekend.BackColor2; dateColor = m_month.Colors.Weekend.Date; textColor = m_month.Colors.Weekend.Text; gradientMode = m_month.Colors.Weekend.GradientMode; } if (m_month.SelectedMonth.Month != m_date.Month) { bgColor1 = m_month.Colors.Trailing.BackColor1; bgColor2 = m_month.Colors.Trailing.BackColor2; gradientMode = m_month.Colors.Trailing.GradientMode; dateColor = m_month.Colors.Trailing.Date; textColor = m_month.Colors.Trailing.Text; } // Check if formatting should be applied if ((m_month.FormatTrailing) || (m_month.SelectedMonth.Month == m_date.Month)) { // check of there is formatting for this day if (queryInfo != null) { info = new NuGenDateItem[1]; info[0] = queryInfo; } else { info = m_calendar.GetDateInfo(this.Date); } if (info.Length > 0) { i = 0; } // go through the available dateitems while ((i < info.Length) && (drawDay)) { if (info.Length > 0) { NuGenDateItem dateInfo = info[i]; if (dateInfo.BackColor1 != Color.Empty) { bgColor1 = dateInfo.BackColor1; } if (dateInfo.BackColor2 != Color.Empty) { bgColor2 = dateInfo.BackColor2; } gradientMode = dateInfo.GradientMode; if (dateInfo.DateColor != Color.Empty) { dateColor = dateInfo.DateColor; } if (dateInfo.TextColor != Color.Empty) { textColor = dateInfo.TextColor; } text = dateInfo.Text; if (dateInfo.Weekend) { bgColor1 = m_month.Colors.Weekend.BackColor1; bgColor2 = m_month.Colors.Weekend.BackColor2; gradientMode = m_month.Colors.Weekend.GradientMode; dateColor = m_month.Colors.Weekend.Date; textColor = m_month.Colors.Weekend.Text; } boldedDate = dateInfo.BoldedDate; enabled = dateInfo.Enabled; if (!dateInfo.Enabled) { bgColor1 = m_month.Colors.Disabled.BackColor1; bgColor2 = m_month.Colors.Disabled.BackColor2; gradientMode = m_month.Colors.Disabled.GradientMode; dateColor = m_month.Colors.Disabled.Date; textColor = m_month.Colors.Disabled.Text; } m_dayImage = dateInfo.Image; if (m_dayImage != null) { m_imageRect = ImageRect(m_month.ImageAlign); } bgImage = dateInfo.BackgroundImage; } if (m_state == NuGenDayState.Selected) { dateColor = m_month.Colors.Selected.Date; textColor = m_month.Colors.Selected.Text; } if ((m_state == NuGenDayState.Focus) && (m_month.Calendar.ShowFocus)) { dateColor = m_month.Colors.Focus.Date; textColor = m_month.Colors.Focus.Text; } if (bgImage != null) { e.DrawImage(bgImage, m_rect); } else { if (gradientMode == NuGenGradientMode.None) { if (bgColor1 != Color.Transparent) { bgBrush = new SolidBrush(Color.FromArgb(m_month.Transparency.Background, bgColor1)); e.FillRectangle(bgBrush, m_rect); } } else { m_calendar.DrawGradient(e, Rectangle, bgColor1, bgColor2, gradientMode); } } ControlPaint.DrawBorder(e, m_rect, m_month.Colors.Days.Border, m_month.BorderStyles.Normal); if (m_dayImage != null) { if (enabled) { e.DrawImageUnscaled(m_dayImage, m_imageRect); } else { ControlPaint.DrawImageDisabled(e, m_dayImage, m_imageRect.X, m_imageRect.Y, m_month.Colors.Disabled.BackColor1); } } // Check if we should append month name to date if ((m_month.ShowMonthInDay) && ((m_date.AddDays(-1).Month != m_date.Month) || (m_date.AddDays(1).Month != m_date.Month))) { dateString = m_date.Day.ToString() + " " + m_calendar._dateTimeFormat.GetMonthName(m_date.Month); } else { dateString = m_date.Day.ToString(); } if (dateColor != Color.Transparent) { dateBrush = new SolidBrush(Color.FromArgb(m_month.Transparency.Text, dateColor)); CharacterRange[] characterRanges = { new CharacterRange(0, dateString.Length) }; dateAlign.SetMeasurableCharacterRanges(characterRanges); m_dateRgn = new Region[1]; // Should date be bolded ? if (!boldedDate) { e.DrawString(dateString, m_month.DateFont, dateBrush, m_rect, dateAlign); m_dateRgn = e.MeasureCharacterRanges(dateString, m_month.DateFont, m_rect, dateAlign); } else { e.DrawString(dateString, boldFont, dateBrush, m_rect, dateAlign); m_dateRgn = e.MeasureCharacterRanges(dateString, boldFont, m_rect, dateAlign); } } if ((text.Length > 0) && (textColor != Color.Transparent)) { textBrush = new SolidBrush(Color.FromArgb(m_month.Transparency.Text, textColor)); CharacterRange[] characterRanges = { new CharacterRange(0, text.Length) }; textAlign.SetMeasurableCharacterRanges(characterRanges); m_textRgn = new Region[1]; e.DrawString(text, m_month.TextFont, textBrush, m_rect, textAlign); m_textRgn = e.MeasureCharacterRanges(text, m_month.TextFont, m_rect, textAlign); } i++; } } dateBrush.Dispose(); bgBrush.Dispose(); textBrush.Dispose(); boldFont.Dispose(); dateAlign.Dispose(); textAlign.Dispose(); }