Прочитать на английском

Поделиться через


Color.GetSaturation Метод

Определение

Возвращает значение насыщенности хью-насыщенности (HSL) для этой Color структуры.

public float GetSaturation ();

Возвращаемое значение

Насыщенность этого Color. Насыщенность диапазонов от 0,0 до 1.0, где 0,0 — серая шкала, а 1.0 — самая насыщенная.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика событий Paint. Код выполняет следующие действия:

  • Создает экземпляр структуры Color, redShade, которая будет использоваться для сравнения.

  • Выполняет итерацию по элементам перечисления KnownColor, чтобы найти все известные цвета с одинаковым насыщенностью, что и redShade. Итерации завершаются при обнаружении 15 совпадений или значение счетчика цикла больше последнего элемента KnownColor.

  • Во время каждой итерации сохраняет элемент KnownColor ( если он соответствует критериям) в массиве.

  • Использует кисть для рисования прямоугольников.

Первый прямоугольник окрашен цветом, представленным redShade. Каждая из других прямоугольников окрашена в KnownColor, которая соответствует насыщенности redShade.

public void GetSatExample(PaintEventArgs e)
{
    Graphics     g = e.Graphics;
             
    // Color structures. One is a variable used for temporary storage. The other
    // is a constant used for comparisons.
    Color   someColor = Color.FromArgb(0);
    Color   redShade = Color.FromArgb(255, 200, 0, 100);
             
    // Array to store KnownColor values that match the saturation of the
    // redShade color.
    KnownColor[]  colorMatches = new KnownColor[15];
     
    // Number of matches found.
    int  count = 0;   
   
    // Iterate through the KnownColor enums until 15 matches are found.
    for (KnownColor enumValue = 0;
        enumValue <= KnownColor.YellowGreen && count < 15; enumValue++)
    {
        someColor = Color.FromKnownColor(enumValue);
        if (someColor.GetSaturation() == redShade.GetSaturation())
            colorMatches[count++] = enumValue;
    }
             
    // Display the redShade color and its argb value.
    SolidBrush  myBrush1 = new SolidBrush(redShade);
    Font        myFont = new Font("Arial", 12);
    int         x = 20;
    int         y = 20;
    someColor = redShade;
    g.FillRectangle(myBrush1, x, y, 100, 30);
    g.DrawString(someColor.ToString(), myFont, Brushes.Black, x + 120, y);
             
    // Iterate through the matches that were found and display each color that
    // corresponds with the enum value in the array. also display the name of
    // the KnownColor.
    for (int i = 0; i < count; i++)
    {
        y += 40;
        someColor = Color.FromKnownColor(colorMatches[i]);
        myBrush1.Color = someColor;
        g.FillRectangle(myBrush1, x, y, 100, 30);
        g.DrawString(someColor.ToString(), myFont, Brushes.Black, x + 120, y);
    }
}

Применяется к

Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1