C#中实现调色板功能!!求代码!
我有源码,要的话给个邮箱,我给你发过去。
不过在这里我先说下大体思路,希望对你有帮助:
图片中显示的每一个颜色区域用一个panel(panel的背景色)表示
最上面大的区域表示当前选中的颜色。
其实这是一个继承至UserControl的自定义控件。
包含:
1.表示当前颜色的Color变量
2.颜色改变时触发的事件
public delegate void ColorChangedEvent(object sender,ColorChangedEventArgs e);
// 当颜色改变时触发事件
public event ColorChangedEvent ColorChanged;
3.其中的ColorChangedEventArgs为自定义事件,不过要继承至EventArgs基类。
其中只有一个颜色变量。给ColorChanged事件注册一个方法。
ColorChanged += new ColorChangedEventHandler(ColorHatch_ColorChanged);
颜色改变时要调用的方法:
private void ColorHatch_ColorChanged(object sender, ColorChangedEventArgs e)
{
panel1.BackColor = e.Color;
}
4.在panel的鼠标点击事件中触发颜色改变事件,具体如下:
private void panel_Click(object sender, EventArgs e)
{
Panel p = sender as Panel;
if (p != null)
{
hatchColor = p.BackColor;
if(ColorChanged != null)
ColorChanged(this, new ColorChangedEventArgs(hatchColor));
}
}