RGB Color em Windows Application com C#(csharp)
O Agnaldo ensina como trabalhar com a caixa de diálogo de seleção de cores e a "construir" uma cor RGB.
Um professor que trabalha comigo me fez a seguinte pergunta:
Como se cria uma cor RGB usando o VB.Net? Estou preparando meus planos de aula e fazia isso em Delphi.
Lembrei de um exemplo que tinha criado para um aluno de VB.Net no ano passado. Fiz o mesmo exemplo, agora em C#.
Temos que saber, de antemão, que uma cor RGB segue um “modelo de adição de cores”, ou seja, cada cor é composta pela combinação de 3 cores (R = vermelho, G = verde e B = azul), com intensidades que variam de 0 a 255 (ou, em hexadecimal, de 0×00 a 0xFF). Conforme aumentamos ou diminuímos um valor temos alterações na cor final.
Por exemplo, a cor branca é formada por 255 “partes” de vermelho, 255 “partes” de verde e 255 “partes” de azul, enquanto que a preta é formada por 0 de cada.
Inicialmente criamos um projeto Windows Application (C#) chamado ExemploCores.
Após isso, posicionamos os controles (Button, Labels, TrackBars), conforme o layout abaixo:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace ExemploCores
{
public partial class Form1 : Form
{
//essa variável me permite controlar a alteração de cores do formulário
bool podeAlterar = false;public Form1()
{
InitializeComponent();
}private void button1_Click(object sender, EventArgs e)
{
/*
* uma caixa de diálogo é apresentada e, se o
* usuário selecionar uma cor, ela será usada
* como cor de fundo do form
*/ColorDialog cd = new ColorDialog();
if (cd.ShowDialog() == DialogResult.OK)
{
this.BackColor = cd.Color;
SetarTrackBar();
}
}private void SetarTrackBar()
{
/*
* atualiza as posições dos cursores
* nos trackbars e os valores apresentados pelos
* labels
*/podeAlterar = false;
trackBar1.Value = this.BackColor.R;
trackBar2.Value = this.BackColor.G;
trackBar3.Value = this.BackColor.B;label4.Text = trackBar1.Value.ToString();
label5.Text = trackBar2.Value.ToString();
label6.Text = trackBar3.Value.ToString();podeAlterar = true;
}private void Form1_Load(object sender, EventArgs e)
{
/*
* atribui valores mínimo e máximo para os trackbars,
* além de atribuir a freqüência do desenho (de quanto
* em quanto o marcador será desenhado no trackbar)
*/trackBar1.Minimum = trackBar2.Minimum = trackBar3.Minimum = 0;
trackBar1.Maximum = trackBar2.Maximum = trackBar3.Maximum = 255;
trackBar1.TickFrequency = trackBar2.TickFrequency =
trackBar3.TickFrequency = 10;SetarTrackBar();
podeAlterar = true;
}private void AlterarCor(object sender, EventArgs e)
{
/*
* esse método é associado ao evento de clique dos
* três trackbars. Conforme alteramos o valor de
* um deles a cor do formulário é alterada
*/
if (podeAlterar)
this.BackColor = Color.FromArgb(trackBar1.Value,
trackBar2.Value,
trackBar3.Value);
}
}
}
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo