- 51Aspx源码必读.txt[2KB]
- ColorPalette.cs[7KB]
- Conmajia's Palette.csproj[3KB]
- Form1.cs[1022B]
- Form1.Designer.cs[5KB]
- Form1.resx[5KB]
- Program.cs[480B]
- obj\x86\Debug\Conmajia's ColorPicker.csproj.FileListAbsolute.txt[1KB]
- obj\x86\Debug\Conmajia's Palette.csproj.FileListAbsolute.txt[1KB]
- Properties\AssemblyInfo.cs[1KB]
- Properties\Resources.Designer.cs[2KB]
- Properties\Resources.resx[5KB]
- Properties\Settings.Designer.cs[1KB]
- Conmajia's ColorPicker.sln[877B]
- from.gif[4KB]
- 最新Asp.Net源码下载.url[125B]
- bin\Debug\ConmajiaColorPicker.exe[11KB]
- bin\Debug\ConmajiaColorPicker.pdb[33KB]
- bin\Debug\ConmajiaPalette.exe[14KB]
- bin\Debug\ConmajiaPalette.pdb[37KB]
- bin\Debug\ConmajiaPalette.vshost.exe[11KB]
- bin\Debug\ConmajiaPalette.vshost.exe.manifest[490B]
- obj\x86\Debug\ColorPicker.ColorPicker.resources[180B]
- obj\x86\Debug\ConmajiaColorPicker.exe[11KB]
- obj\x86\Debug\ConmajiaColorPicker.Form1.resources[180B]
- obj\x86\Debug\ConmajiaColorPicker.pdb[33KB]
- obj\x86\Debug\ConmajiaColorPicker.Properties.Resources.resources[180B]
- obj\x86\Debug\ConmajiaPalette.exe[14KB]
- obj\x86\Debug\ConmajiaPalette.pdb[37KB]
- obj\x86\Debug\ConmajiaPalette.Properties.Resources.resources[180B]
- obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache[7KB]
- obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache[5KB]
- obj\x86\Debug\GenerateResource-ResGen.read.1.tlog[1KB]
- obj\x86\Debug\GenerateResource-ResGen.write.1.tlog[3KB]
- obj\x86\Debug\TempPE\Properties.Resources.Designer.cs.dll[4KB]
- Properties\Settings.settings[249B]
源码介绍
简单取色板源码
功能介绍:
取色,取到的颜色可以通过ColorChanged事件参数e.Color获得,还可以在控件里把current变量公开出来
实现过程:
控件由很多色块组成。目前固定尺寸6x36,你可以自己修改尺寸。
控件分层是这样的(从最底层到最上层):
1.控件绘图面2.色块3.网格4.边框5.光标
在Paint事件中按上面顺序绘制2-5。
绘制网格很简单,根据色块大小隔一定距离画一道横(竖)线
绘制色块道理差不多,先获取当前坐标(行,列)的颜色(根据你自己定义的调色盘计算出来),然后填充一个方块,转到处理下一个坐标,直到全部行列都处理完。
然后绘制所有色块
从表面上看,是通过鼠标移动,选取每个色块获得颜色。其实不然。那样做,我就需要保存每个色块的颜色信息,白白浪费空间。我的实现方法是通过鼠标位置得知当前鼠标所在色块的坐标(行,列),然后用上面的颜色算法直接得到该色块的颜色,一句话搞定(Point pt是鼠标位置)。
标移动时会绘制光标,为了减少性能开销,不能直接Refresh()/Invalidate()控件,使用Invalidate(Rectangle)来重绘被鼠标弄脏的那个区域。所以用了两个小矩形保存旧光标和新光标的区域,然后在鼠标事件中更新(和鼠标取色一起)。
然后鼠标移动事件里重绘时稍微把区域扩大点(避免留下难看的边框)。
最后一行「OnColorChanged();是用来引发颜色改变事件。把事件写出来基本就完成了。
然后再完善下属性之类的,就可以在你的程序里使用了。
程序简单适合新手学习使用。
注意:
开发环境为Visual Studio 2010
下载记录(Only Recent 100)
用户名 | 推荐指数 | 下载时间 |
---|