Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Закрашивание текста


Автор: sindi8 21.11.2006, 00:43
Приветствую всех!

У меня очередной "графический" вопрос  smile
Не сталкивался ли кто-нибудь с такой задачей, или просто знает в какую сторону двигаться:
нужно научиться закрашивать текст в формате караоке - т.е. не побуквенно допустим, а часть буквы.

Буду рад любым решениям, советам и направлениям

Ш-пасибо  smile 

Автор: ivashkanet 21.11.2006, 09:25
Можно повеситься на событие перерисовки формы и рисовать оттуда:
Код

        void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;

            Brush brush = new LinearGradientBrush(new Point(0, 0), new Point(315, 0), Color.Black, Color.White);
            g.DrawString("A", new Font("Tahoma", 500), brush, new Point(5, 5));
        }

Не могу сказать, что LinearGradientBrush удачный выбор, но он рисует примерно то что нужно. Если есть желание --- можешь поиграться с кистями и найти более подходящую.
Как соотноситься 500-ый шрифт и число 315 в кисти --- не в курсе, оно подобрано вручную.

Автор: sindi8 21.11.2006, 16:13
Слуууушай, интересная мысль!!! Очень спасибо  smile 
Пойду потестирую, на сколько это подходит к моей задаче.

Автор: sindi8 21.11.2006, 21:09
Всё гениальное как обычно просто! Спасибо ivashkanet за поданную мысль (+1).

В общем - от градиентов ушел, использовал TextureBrush, в качестве текстуры bmp-шка высотой 1px и шириной чтоб хватило для закрашивания с вертикальным рястягиванием.

Ура, товарищи!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)