Использование предопределенных цветов системы в C#

Статический класс System.Drawing.SystemColors определяет свойства, которые дают системные цвета. К ним относятся цвета для таких объектов, как активные объекты, выделенный текст, титры и оконные рамы.

В этом примере используется следующий код для отображения определенных цветов системы.

// Список системных цветов.
private void Form1_Paint(object sender, PaintEventArgs e)
{
    int y = 10;
    
    // Перечислим свойства статического цвета класса SystemColors.
    Type type = typeof(SystemColors);
    foreach (PropertyInfo field_info in type.GetProperties())
    {
        DrawColorSample(e.Graphics, ref y,
            (Color)field_info.GetValue(null, null),
            field_info.Name);                
    }

    // Размер по размеру.
    this.ClientSize = new Size(this.ClientSize.Width, y + 10);
}

Этот код получает объект Type, представляющий класс SystemColors. Он вызывает метод GetProperties объекта и циклически просматривает возвращаемую информацию о свойствах. Для каждого свойства он вызывает следующий DrawColorSample метод, передавая ему цвет и имя свойства.

// Отображение образца цвета.
private void DrawColorSample(Graphics gr, ref int y,
    Color clr, string clr_name)
{
    using (SolidBrush br = new SolidBrush(clr))
    {
        gr.FillRectangle(br, 10, y, 90, 10);
    }
    gr.DrawRectangle(Pens.Black, 10, y, 90, 10);
    gr.DrawString(clr_name, this.Font, Brushes.Black, 110, y);
    y += 15;
}

Этот метод рисует прямоугольник, заполненный цветом, за которым следует имя цвета. Он завершился путем увеличения переменной y, поэтому следующий цвет рисуется ниже этого.

В этом примере используется отражение, чтобы он мог отображать все цвета системы, но в реальной программе вы, вероятно, просто использовали бы системный цвет, как если бы это было любое другое значение цвета. Например, следующий код устанавливает фон формы в цвет HotTrack.

this.BackColor = SystemColors.HotTrack;

Источник: http://csharphelper.com/blog/2014/09/use-the-predefined-system-colors-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Adblock
detector