颜色跟踪条ColorTrackBar

来源:互联网 发布:jenkins 数据库配置 编辑:程序博客网 时间:2024/06/03 18:03

Code:

using System;using System.Windows.Forms;using System.Drawing;namespace CsStudy{    class ColorTrackBar : Form    {        Panel panel;        Label[] alabelName = new Label[3];        Label[] alabelValue = new Label[3];        TrackBar[] atrackbar = new TrackBar[3];        public static void Main()        {            Application.Run(new ColorTrackBar());        }        public ColorTrackBar()        {            Text = "颜色跟踪条";            Color[] acolor = { Color.Red, Color.Green, Color.Blue };            panel = new Panel();            panel.Parent = this;            panel.Location = new Point(0, 0);            panel.BackColor = Color.White;            for (int i = 0; i < 3; i++)            {                alabelName[i] = new Label();                alabelName[i].Parent = panel;                alabelName[i].ForeColor = acolor[i];                alabelName[i].Text = "&" + acolor[i].ToKnownColor();                alabelName[i].TextAlign = ContentAlignment.MiddleCenter;                atrackbar[i] = new TrackBar();                atrackbar[i].Parent = panel;                atrackbar[i].Orientation = Orientation.Vertical;                atrackbar[i].SmallChange = 1;                atrackbar[i].LargeChange = 16;                atrackbar[i].BackColor = acolor[i];                atrackbar[i].Minimum = 0;                atrackbar[i].Maximum = 255;                atrackbar[i].TickFrequency = 16;                atrackbar[i].ValueChanged += new EventHandler(ColorScroll_ValueChanged);                alabelValue[i] = new Label();                alabelValue[i].Parent = panel;                alabelValue[i].TextAlign = ContentAlignment.MiddleCenter;            }            Color color = BackColor;            atrackbar[0].Value = color.R;            atrackbar[1].Value = color.G;            atrackbar[2].Value = color.B;            OnResize(EventArgs.Empty);        }        protected override void OnResize(EventArgs e)        {            int cx = ClientSize.Width;            int cy = ClientSize.Height;            int cyFont = Font.Height;            panel.Size = new Size(cx / 2, cy);            for (int i = 0; i < 3; i++)            {                alabelName[i].Location = new Point(i * cx / 6, cyFont / 2);                alabelName[i].Size = new Size(cx / 6, cyFont);                atrackbar[i].Location = new Point((4 * i + 1) * cx / 24, 2 * cyFont);                atrackbar[i].Size = new Size(cx / 12, cy - 4 * cyFont);                alabelValue[i].Location = new Point(i * cx / 6, cy - 3 * cyFont / 2);                alabelValue[i].Size = new Size(cx / 6, cyFont);            }            base.OnResize(e);        }        void ColorScroll_ValueChanged(object obj, EventArgs e)        {            for (int i = 0; i < 3; i++)            {                if ((TrackBar)obj == atrackbar[i])                    alabelValue[i].Text = atrackbar[i].Value.ToString();            }            BackColor = Color.FromArgb(atrackbar[0].Value, atrackbar[1].Value, atrackbar[2].Value);        }    }}

效果图:


0 0
原创粉丝点击