Fahid Zahoor Ответов: 2

Изменить цвет текста кнопки в winform приложение


Привет я разрабатываю приложение winform и в этом приложении я использую кнопки теперь я хочу изменить только задний цвет текста кнопки, а не весь фон кнопки.

Что я уже пробовал:

я понятия не имею как я могу это сделать пожалуйста помогите мне кто нибудь

2 Ответов

Рейтинг:
2

Dave Kreskowiak

Как заметил Рик, вам придется самому нарисовать текст кнопки. Текст на элементах управления не имеет цвета фона. Фоном является сам контроль.

Вероятно, вам следует создать новый класс, который наследуется от Button, и добавить свойства и код рисования в новый класс. Не пытайтесь делать это на уровне формы.


Рейтинг:
1

RickZeeland

Воспользуйся Графика.шнурок() в сочетании с Графика.FillRectangle()
Видеть: Графика.Метод DrawString (Система.Чертеж) | Microsoft Docs[^]
Это можно сделать в метод OnPaint() событие пользовательской кнопки (которая наследуется от кнопки), вот некоторые непроверенные коды:

using System.Drawing;

protected override void OnPaint(PaintEventArgs pe)
{
        base.OnPaint(pe);
        Brush brush = new SolidColorBrush(Color.Red));
        pe.Graphics.FillRectangle (brush, ClientRectangle);
        brush.Dispose();
}

Также видеть: Контроль.Свойство ClientRectangle (System.Окна.Формы) | Microsoft Docs[^]

Другим способом было бы использовать TextRenderer, смотрите пример здесь: c# - графика.DrawString выделяет определенные слова - переполнение стека[^]