Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
        }