Пример #1
0
        private void DrawTextAcrossGradient(IEnumerable <String> textLines, Graphics g, Point p, LinearGradientMode mode)
        {
            int i = 0;

            foreach (var text in textLines)
            {
                var size        = g.MeasureString(text, _font);
                var offset      = _maxTextSize - (int)size.Width;
                var offsetPoint = new Point(p.X + offset / 2, p.Y);

                ColorGradient cg    = Colors[i % Colors.Count()];
                var           brush = new LinearGradientBrush(new Rectangle(0, 0, BufferWi, BufferHt),
                                                              Color.Black,
                                                              Color.Black, mode)
                {
                    InterpolationColors = cg.GetColorBlend()
                };
                DrawTextWithBrush(text, brush, g, CenterText ? offsetPoint : p);
                brush.Dispose();

                p.Y += (int)size.Height;
                if (TextMode == TextMode.Normal)
                {
                    i++;
                }
                else
                {
                    if (text == Environment.NewLine)
                    {
                        i++;
                    }
                }
            }
        }
Пример #2
0
        private Brush CreateGradientBrushForRectangle(LinearGradientMode mode, List <ColorGradient> gradientColors, Rectangle brushRect)
        {
            ColorGradient cg = _level < 1 || CountDownFade != CountDownFade.None ? GetNewGolorGradient(gradientColors) : new ColorGradient(gradientColors[_countDownNumberIteration % gradientColors.Count()]);

            var brush = new LinearGradientBrush(
                brushRect,
                Color.Black,
                Color.Black,
                mode)
            {
                InterpolationColors = cg.GetColorBlend()
            };

            return(brush);
        }
Пример #3
0
        private void DrawTextWithGradient(IEnumerable <String> textLines, Graphics g, Point p, LinearGradientMode mode)
        {
            int i = 0;

            foreach (var text in textLines)
            {
                var size        = g.MeasureString(text, _newfont);
                var offset      = _maxTextSize - (int)size.Width;
                var offsetPoint = new Point(p.X + offset / 2, p.Y);
                var brushPointX = p.X;
                if (CenterText && TextMode == TextMode.Rotated && TextSource == TextSource.None)
                {
                    brushPointX = p.X - offset / 2;
                }
                else if (CenterText)
                {
                    brushPointX = offsetPoint.X;
                }

                ColorGradient cg = TextSource != TextSource.None && CycleColor ? Colors[_wordIteration % Colors.Count()] : Colors[i % Colors.Count()];

                if (_level < 1 || TextFade != TextFade.None)
                {
                    cg = GetNewGolorGradient(cg);
                }

                var brush = new LinearGradientBrush(new Rectangle(brushPointX, p.Y, TextMode == TextMode.Rotated && TextSource == TextSource.None ? _maxTextSize:(int)size.Width, (int)size.Height), Color.Black,
                                                    Color.Black, mode)
                {
                    InterpolationColors = cg.GetColorBlend()
                };

                DrawTextWithBrush(text, brush, g, CenterText?offsetPoint:p);
                brush.Dispose();
                p.Y += (int)size.Height;
                if (TextMode == TextMode.Normal || TextSource == TextSource.MarkCollection)
                {
                    i++;
                }
                else
                {
                    if (text == Environment.NewLine)
                    {
                        i++;
                    }
                }
            }
        }
Пример #4
0
        private void DrawTextAcrossGradient(String text, Graphics g, Point p, LinearGradientMode mode)
        {
            var           size        = g.MeasureString(text, _newfont);
            var           offset      = _maxTextSize - (int)size.Width;
            var           offsetPoint = new Point(p.X + offset / 2, p.Y);
            ColorGradient cg          = _level < 1 || CountDownFade != CountDownFade.None ? GetNewGolorGradient() : new ColorGradient(GradientColors[_countDownNumberIteration % GradientColors.Count()]);
            var           brush       = new LinearGradientBrush(new Rectangle(0, 0, BufferWi, BufferHt),
                                                                Color.Black,
                                                                Color.Black, mode)
            {
                InterpolationColors = cg.GetColorBlend()
            };

            DrawTextWithBrush(text, brush, g, offsetPoint);
            brush.Dispose();
            p.Y += (int)size.Height;
        }
Пример #5
0
        private void DrawTextWithGradient(String text, Graphics g, Point p, LinearGradientMode mode)
        {
            var           size        = g.MeasureString(text, _newfont);
            var           offset      = _maxTextSize - (int)size.Width;
            var           offsetPoint = new Point(p.X + offset / 2, p.Y);
            var           brushPointX = offsetPoint.X;
            ColorGradient cg          = _level < 1 || CountDownFade != CountDownFade.None ? GetNewGolorGradient() : new ColorGradient(Colors);
            var           brush       = new LinearGradientBrush(new Rectangle(brushPointX, p.Y, _maxTextSize, (int)size.Height), Color.Black,
                                                                Color.Black, mode)
            {
                InterpolationColors = cg.GetColorBlend()
            };

            DrawTextWithBrush(text, brush, g, offsetPoint);
            brush.Dispose();
            p.Y += (int)size.Height;
        }