MS Visual Studio 2010. Цветовой калькулятор

Знакомство с визуальной средой Visual Studio. Знакомство с элементами управления панель (Panel), ползунок (TrackBar). Знакомство с методом Color.FromArgb.

 Разработать приложение, в котором можно было бы изменять цвет панели, с помощью «ползунков» задавая значения для красной, зеленой и синей составляющей и для прозрачности (альфа канала). Размеры панели также должны изменяться с помощью «ползунков».


цветовой калькулятор

 

Для того чтобы задавать числа, соответствующие составляющим цвета, используем четыре элемента управления TrackBar. Для отображения выбранного цвета используем элемент управления Panel. Для изменения размеров панели используется элементы управления TrackBar. 

Элемент управления TrackBar

Элемент управления TrackBar представляет собой шкалу с движком, с помощью которого пользователь может изменять (регулировать) численное значение. Это может быть уровень громкости, баланс звуковых каналов, насыщенность отдельных компонентов цвета, яркость и пр.

Движок элемента управления TrackBar можно передвигать мышью, клавишами перемещения курсора, а также клавишами Home, End, PgUp и PgDn. При перемещении движка создаются события Scroll.

Свойство Value хранит текущее значение, непосредственно связанное с положением движка в окне регулятора. Программа может не только читать это свойство, но и писать в него. При этом положение движка будет изменяться соответствующим образом.

Свойства Minimum и Maximum определяют, соответственно, минимальное и максимальное значение, связанное с движком. По умолчанию минимальное значение равно 1, а максимальное – 10.

Изменяя свойство Orientation, можно задать горизонтальное или вертикальное расположение окна элемента управления TrackBar. В первом случае свойство должно содержать значение Horizontal, а во втором – Vertical.

Метод Color.FromArgb

Для того чтобы установить свойство Color какого либо объекта (естественно, если этот объект обладает этим свойством), можно воспользоваться методом Color.FromArgb.

Метод Color.FromArgb  cоздает структуру Color из указанных 8-разрядных значений компонентов ARGB (альфа, красный, зеленый и синий).

Структура Color располагается в пространстве имен System.Drawing, и представляет некоторый цвет. Каждый цвет определяется четырьмя значениями:

  • Alfa (A) – определяет прозрачность;
  • Red (R) – определяет интенсивность красного цвета;
  • Green (G) – определяет интенсивность зеленого цвета;
  • Blue (B) – определяет интенсивность синего цвета.

Каждое из этих значений имеет значение от 0 до 255.

Пример использования метода Color.FromArgb:

Color myColor = Color.FromArgb(255, 128, 115, 3);

Разработка приложения

Откройте среду Microsoft Visual Studio и создайте новый проект (решение) с именем «ColorCalc».

Разместите на форме элементы управления, как на рисунке выше.

Задайте свойства Name для элементов управления: «ползункам» – tba, tbr, tbg, tbb (для альфа канала и для красного, зеленого и синего цвета), tbh и tbw (для изменения высоты и ширины панели). PnColor (для панели). lba, lbr, lbg, lbb (для меток, в которых будут отображаться значения интенсивности альфа канала, красного, зеленого и синего цвета). lbh и lbw (для меток, в которых будут отображаться значения высоты и ширины панели).

При движении «ползунка», ответственного за цвет должен изменяться цвет панели и значение цветовой составляющей должно отображаться в соответствующей метке.

 private void tbr_Scroll(object sender, EventArgs e)
{
  PnColor.BackColor = Color.FromArgb(tba.Value, tbr.Value, tbg.Value, tbb.Value);
  lbr.Text = tbr.Value.ToString();
}

А далее, по аналогии, для оставшихся  цветовых «ползунков».

При движении «ползунка», ответственного за высоту панели должна изменяться высота панели и значение высоты должно отображаться в соответствующей метке.

private void tbh_Scroll(object sender, EventArgs e)
        {
            lbh.Text = "Высота = " + (250 - tbh.Value).ToString();
            PnColor.Height = 250 - tbh.Value;
        }

 

Добавить комментарий
  • Комментарии не найдены
 
Our website is protected by DMC Firewall!