|
Программирование >> Автоматически обновляемые приложения
Вот новый поворот (из песни группы Машина времени ) Не могу избавиться от искушения вывести текст вокруг какой-нибудь точки, чтобы получить эффект солнышка (рис. 7.6). Это делает код в листинге 7.20.
Рис. 7.6. Поворот текста вокруг одной точки Листинг 7,20. Вывод текста вокруг точки private void button3 Click(object sender, EventArgs e) ( Graphics g = CreateGraphics(); g.Clear(BackColor); Находим центр формы int cx = this.ClientSize.Width/2; int cy = this.ClientSize.Height/2; Перемещаемся в заданную точку отсчета g.TranslateTransform(cx,су); g.FillEllipse(Brushes.Yellow, -45,-45, 90, 90); Бегущая градиентная строка Мы уже рассматривали пример бегущей строки для заголовков формы. Эту же технику можно использовать для создания бегущей градиентной строки с использованием графических методов (листинг 7.21). <i 7.21. Создание бегущей градиентной строки Color startColor = Color.Greene-Color endColor = Color.Gold; string scrollText = C#.Народные советы ; private void button4 Click(object sender, EventArgs e) { timerl.Enabled = true; private void timerl Tick(object sender, EventArgs e) { scrollText = scrollText.Substring(1, (scrollText.Length - 1)) + scrollText.Substring(0, 1) Invalidate() ; SolidBrush solBrush = new SolidBrush(Color.YellowGreen); Font f = new Font( Tahoma , 24, FontStyle.Bold); Рисуем солнышко int counter = 0; for (counter =--0; counter<359; counter++) { g.Drawstring( C#.Народные советы , f, solBrush, 50, 0); g.RotateTransform (20); Восстанавливаем преобразовние g.ResetTrans form (); g.Dispose(); Скроллинг текста На самом деле пример для бегущего текста получился не самым удачным. У метода Drawstring имеются параметры, задающие координаты вывода текста. Воспользуемся этими координатами для создания скроллинга текста как по горизонтали, так и по вертикали (листинг 7.22). Для примера нам понадобится таймер и два переключателя. [Листинг 7.22, Скроллинг текста в двух направлениях Single y vert; Single x horiz; Graphics g; Font f; string scrollText = C#.Народные советы ; private void timerl Tick(object sender, EventArgs e) { if (rbHoriz.Checked) { g.Clear(this.BackColor); private void Forml Paint(object sender, PaintEventArgs e) { Brush grBrush = new LinearGradientBrush(this.ClientRectangle, startColor, endColor, 10); Font f = new Font(Font.Name, 60, Font.Style, GraphicsUnit.Pixel); e.Graphics.DrawString(scrollText, f, grBrush, 0, 0); grBrush.Dispose 0; f.Dispose (); Обратите внимание, что цвет букв во время движения плавно изменяется. Примечание Примеры отображения текстов находятся в папке RotatedText на прилагаемом диске.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |