Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
0 / 0 / 1
Регистрация: 15.08.2011
Сообщений: 12

Как свойству Text элемента Label присвоить градиент

06.09.2011, 22:25. Показов 4816. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос следующий, как свойству Text элемента Label присвоить не определенно конкретный цвет, а на пример спектр, то есть что бы от первого до последнего символа цвет плавно изменялся
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.09.2011, 22:25
Ответы с готовыми решениями:

Как можно присвоить значение label.text из другого потока?
Есть label созданный на форме, его значение label.text нужно изменить из другого потока. Как это сделать?

Как к свойству Text в textBox присвоить текст?
Как к свойству Text в textBox присвоить текст? Я с начала подключил #include <string> using namespace std; потом попытался...

Borland C++ Builder. Как свойству Text компонента Edit присвоить значение строки?
Как свойству Text компонента Edit присвоить значение строки? string a; a = "word"; Edit1->Text = a; Вылетает ошибка: ...

3
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
06.09.2011, 23:00
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
 
namespace WindowsFormsApplication13
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            string text = "hello, world";
            float height = e.Graphics.MeasureString(text, this.Font).Height;
            float width = e.Graphics.MeasureString(text, this.Font).Width;
            LinearGradientBrush gradient = new LinearGradientBrush(new RectangleF(0, 0, width, height), Color.Red, Color.Green, LinearGradientMode.Horizontal);
            e.Graphics.DrawString(text, this.Font, gradient, new PointF(10F, 10F));
        }
    }
}
Добавлено через 23 минуты
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
using System.Drawing;
using System.Drawing.Drawing2D;
 
namespace System.Windows.Forms
{
    class GradientLabel: Label
    {
        string text;
        static int count = 1;
        float angle = 0;
        Color color1;
        Color color2;
        /// <summary>
        /// Контруктор по умолчанию
        /// </summary>
        public GradientLabel()
        {
            color1 = Color.Red;
            color2 = Color.Green;
            angle = 0F;
            text = "label" + count.ToString();
            this.Paint += new PaintEventHandler(GradientLabel_Paint);
            count++;
        }
 
        void GradientLabel_Paint(object sender, PaintEventArgs e)
        {
            float width = e.Graphics.MeasureString(this.Text, this.Font).Width;
            float height = e.Graphics.MeasureString(this.Text, this.Font).Height;
            LinearGradientBrush brush = new LinearGradientBrush(new RectangleF(0F, 0F, width, height), color1, color2, angle, true);
            e.Graphics.DrawString(text, this.Font, brush, new PointF(0F, 0F));
        }
        /// <summary>
        /// Конструктор с параметрами
        /// </summary>
        /// <param name="clr1">Первый цвет градиента</param>
        /// <param name="clr2">Второй цвет градиента</param>
        /// <param name="angle">Угол градиента</param>
        /// <param name="text">Текст отображаемый градиентом</param>
        public GradientLabel(Color clr1, Color clr2, float angle, string text)
        {
            this.color1 = clr1;
            this.color2 = clr2;
            this.angle = angle;
            this.text = text;
            this.Paint += new PaintEventHandler(GradientLabel_Paint);
        }
        /// <summary>
        /// Первый цвет градиента
        /// </summary>
        public Color Color1
        {
            get
            {
                return color1;
            }
            set
            {
                color1 = value;
            }
        }
        /// <summary>
        /// Второй цвет градианта
        /// </summary>
        public Color Color2
        {
            get
            {
                return color2;
            }
            set
            {
                color2 = value;
            }
        }
        /// <summary>
        /// Угол градиента
        /// </summary>
        public float Angle
        {
            get
            {
                return angle;
            }
            set
            {
                angle = value;
            }
        }
        /// <summary>
        /// Текст
        /// </summary>
        new public string Text
        {
            get
            {
                return text;
            }
            set
            {
                text = value;
            }
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;
using System.Drawing;
using System.Windows.Forms;
 
namespace WindowsFormsApplication14
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            
            //Испольуем контруктор с параметрами
            GradientLabel label = new GradientLabel(Color.Black, Color.Brown, 50F, "cyberforum");
            label.Location = new Point(10, 10);
            this.Controls.Add(label);
 
            //Используем контруктор без параметров
            Random rnd = new Random();
            for (int i = 0; i < 10; i++)
            {
                GradientLabel label1 = new GradientLabel();
                label1.Left = 10;
                label1.Top = i * 20 + 50;
                label1.Color1 = Color.FromArgb(rnd.Next());
                label1.Color2 = Color.FromArgb(rnd.Next());
                this.Controls.Add(label1);
            }
        }
    }
}
1
Заблокирован
06.09.2011, 23:25
Найдите отличие
Миниатюры
Как свойству Text элемента Label присвоить градиент  
0
Заблокирован
07.09.2011, 07:17
Всё очень просто и не надо ничего лишнего)))
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
    using System.Drawing.Drawing2D;
    public partial class Form1 : Form
    {
        MyLabel ml, m2;
        public Form1()
        {
            InitializeComponent();
 
            ml = new MyLabel(Color.Red, Color.Blue);
            ml.Location = new Point(10,10 );
            ml.Text = "Hello World";          
            ml.Font = new Font("Microsoft Sans Serif", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
            this.Controls.Add(ml);
 
            m2 = new MyLabel(Color.Blue, Color.Yellow);
            m2.Location = new Point(10, 40);
            m2.Text = "Здравствуй Мир";           
            m2.Font = new Font("Microsoft Sans Serif", 25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
            this.Controls.Add(m2);
        }
    }
 
    class MyLabel : Label
    {
        string text;
        Color cl1, cl2;
        public MyLabel(Color cl1,Color cl2)
        {
            this.cl1 = cl1;
            this.cl2 = cl2;
            this.AutoSize = true;// Вот здесь Петррр была твоя ошибка)))
  
        }
        protected override void OnPaint(PaintEventArgs e)
        {
 
            LinearGradientBrush brush = new LinearGradientBrush(ClientRectangle, cl1, cl2, 10);
             e.Graphics.DrawString(text, this.Font, brush, new PointF(0F, 0F));
 
        }
 
 
        public override string Text
        {
            get
            {
                return text;
            }
            set
            {
                text = value;
            }
        }
    }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.09.2011, 07:17
Помогаю со студенческими работами здесь

Можно ли JavaScript-ом присвоить значение свойству value элемента HtmlInputFile ?
Можно ли JavaScript-ом присвоить значение свойству value элемента HtmlInputFile

В Form1 переменная user. В Form2 пытаюсь присвоить label.Text её значение.
Есть Form1 и Form2. В Form1 переменная user. В Form2 пытаюсь присвоить label.Text её значение. Выдаётся ошибка: &quot;Для...

Как присвоить свойству значения?
Не знаю ,что точно нужно по этому скину весь код . Суть вопроса в том, что не могу понять , как присвоить свойству Power значения равное...

Как присвоить свойству Value выбранную позицию ComboBox?
В Comboboxe List содержит вариативное количество колонок. Программно созданы условия, когда последняя позиция List должна быть выбрана в...

Как свойству EcdNtpReason присвоить объект IList<>
есть: private IList&lt;EcdNtpReason&gt; NtpReasons; ecdNtpReasonBindingSource.DataSource = NtpReasons; Как вот добавить сюда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru