public static void DrawCaption(Graphics g, Rectangle captionRect, string captionText, CaptionFont captionFont, bool isAAMode) { System.Drawing.Font font = captionFont.CreateFont(); StringFormat stringFormat = new StringFormat(); //TextFormatFlags txtFormatFlags = new TextFormatFlags(); //txtFormatFlags = TextFormatFlags.Top | TextFormatFlags.Left; if (captionFont.IsDirectionVertical) { stringFormat.FormatFlags = StringFormatFlags.DirectionVertical | StringFormatFlags.DirectionRightToLeft; } List <Point> offsets = new List <Point>(); for (int i = 0; i < captionFont.BorderSize; i++) { offsets.Add(new Point(i, -captionFont.BorderSize + i)); offsets.Add(new Point(captionFont.BorderSize - i, i)); offsets.Add(new Point(-i, captionFont.BorderSize - i)); offsets.Add(new Point(-captionFont.BorderSize + i, -i)); } captionRect.X = captionRect.Left + FormMain.UserConfig.CaptionIndentLeftPadding; captionRect.Y = captionRect.Top + FormMain.UserConfig.CaptionIndentTopPadding; foreach (Point ofs in offsets) { Rectangle borderRect = captionRect; borderRect.X += ofs.X; borderRect.Y += ofs.Y; if (isAAMode) { //TextRenderer.DrawText(g, captionText, font, borderRect, FormMain.UserConfig.AACaptionFont.Colors.BorderColor, txtFormatFlags); g.DrawString(captionText, font, captionFont.BorderBrush, borderRect.X, borderRect.Y); } else { //TextRenderer.DrawText(g, captionText, font, borderRect, FormMain.UserConfig.CaptionFont.Colors.BorderColor, txtFormatFlags); g.DrawString(captionText, font, captionFont.BorderBrush, borderRect, stringFormat); } } if (isAAMode) { //TextRenderer.DrawText(g, captionText, font, captionRect, FormMain.UserConfig.AACaptionFont.Colors.HighForeColor, txtFormatFlags); g.DrawString(captionText, font, captionFont.GetForeBrush(captionRect), captionRect.X, captionRect.Y); } else { //TextRenderer.DrawText(g, captionText, font, captionRect, FormMain.UserConfig.CaptionFont.Colors.HighForeColor, txtFormatFlags); g.DrawString(captionText, font, captionFont.GetForeBrush(captionRect), captionRect, stringFormat); } }
bool IsCaptionInRect(CaptionFont captionFont) { SizeF size = this.CreateGraphics().MeasureString(CaptionText, captionFont.CreateFont(), 10000); if (FormMain.UserConfig.ReduceFontSizeByWindowWidth && size.Width > (float)Width - 20.0f) { return(false); } if (FormMain.UserConfig.ReduceFontSizeByWindowHeight && size.Height > (float)Height - 27.0f) { return(false); } return(true); }