【首先贴上github链接:适用于 Windows 窗体的 Cyotek 拾色器控件】
一、简单使用教程
此处是我使用Cyotek.Windows.Forms.ColorPickers库部分功能的一些经验和思路总结,没有太多深入地去学习,如果有哪位大佬有深入学习使用的话,可以推给我大家一起学习一下。
二、官方介绍
Cyotek.Windows.Forms.ColorPickers库包含一系列自定义控件和实用程序类,适用于使用颜色的 Windows 窗体应用程序。控件可用于通过 HSL 进行颜色选择ColorWheel,ColorGrid 具有许多自定义选项,ColorEditor用于通过 RGB 或 HSL 输入颜色,以及ScreenColorPicker用于从正在运行的应用程序中捕获颜色。
调色板可以以多种不同的格式加载和保存,包括 Adobe PhotoShop 色板文件、JASC 调色板、Gimp 调色板等(请参阅下面的调色板和外部调色板文件)。
有关这些控件的更多信息,请参阅cyotek.com 上带有标签的文章。colorpicker
(1)获取Lib
获取库的最简单方法是通过NuGet。Install-Package Cyotek.Windows.Forms.ColorPicker
如果您不使用 NuGet,可以从GitHub 发布页面获取预编译的二进制文件。
当然,您可以随时获取源代码并自己构建!
(2)控件
1. 颜色网格控件 ColorGrid Controls
此控件显示颜色网格,并支持主调色板和自定义调色板。有几个属性可用于配置控件的显示,也有一些行为选项,例如内置的颜色编辑和支持自动添加不在主调色板中的新颜色。
2.色轮控制 ColorWheel
此控件显示 RGB 颜色的径向轮,并允许从轮中的任何点进行选择。ShowAngleArrow、ShowCenterLines 和ShowSaturationRing属性可用于显示有用的装饰,而Lightness和Alpha属性可用于组成最终颜色,但不能在轮子上直接编辑。
SecondaryColors和SecondarySelectionSize属性允许您在轮盘上显示其他颜色例如用于显示关系。
3.颜色滑块控件 ColorSlider
一组控件(从单个基类继承),允许通过彩色条选择值。与 TrackBar控件类似,您有几个选项可用于指定拖动手柄的位置和条形方向。您还可以自定义填充和轮廓颜色,或将其完全替换为自定义图像。
4.颜色编辑器控件 ColorEditor
此控件允许通过标准界面编辑 RGB 或 HSL 颜色。您还可以通过 6 或 8 个字符的十六进制表示法输入颜色,或从命名的 Web 和系统颜色中进行选择。
可以通过 ShowAlphaChannel和PreserveAlphaChannel属性配置 alpha 通道的使用。ShowHex、ShowHsl和ShowRgb属性可用于显示或隐藏编辑器组件或者,NubSizeNubColor和NubOutlineColor 属性可用于自定义滑块的外观。
5.ScreenColorPicker 控件
此控件允许用户从屏幕上显示的任何像素中选择颜色。用户可以通过单击并拖动控件来触发操作,也可以通过该CaptureMouse方法以编程方式完成,允许通过其他操作(例如热键)触发选择。该Zoom属性可用于设置预览的网格大小。
6.颜色选择器对话框窗体 ColorPickerDialog
此表单将前面的控件放在一个随时可用的对话框中。
通过该属性支持自定义颜色CustomColors,用户还可以将外部调色板文件加载或保存到其中。您可以使用ShowLoad和ShowSave属性来启用或禁用此功能,并使用CustomColorsLoading和CustomColorsSaving事件来覆盖内置行为并提供您自己的逻辑。
7.颜色编辑器管理器 ColorEditorManager
这是一个非 GUI 组件,您可以将其拖放到表单上,并绑定到此库中的其他控件。当Color 一个控件的属性发生变化时,它会反映在其他控件中,而无需抬起手指。如果您从多个控件创建复合显示,这很有用。
调色板和外部调色板文件
ColorGrid控件有CustomColors和Colors属性能够返回一个颜色集合。这两个属性使开发人员可以更轻松地保持单独的主调色板,同时具有自定义颜色的灵活性,尽管它确实使控件的内部逻辑有点复杂!如果您尝试将控件设置为当前未定义的值,网格将自动填充自定义颜色。
除了手动填充颜色集合实例外,您还可以加载外部调色板文件。支持以下调色板格式:
Adobe 颜色表 (.act)
Adobe PhotoShop 色板 (.aco)
GIMP (.gpl)
豪华油漆 (.bbm; .lbm) [只读]
JASC (.pal)
Paint.NET (.txt)
原始 RGB 三元组 (.pal)
除了 ILBM 图像格式之外,所有其他格式都可以导出和导入。
通过添加实现IPaletteSerializer. (或任何使用静态方法的 ColorPickerDialog自定义代码 PaletteSerializer)将通过反射自动检测并提供自定义调色板。
键盘支持
所有 GUI 组件, ScreenColorPicker包括完整的键盘/焦点支持除外。许多控件支持SmallChange和LargeChange影响导航键处理方式的属性。虽然在这种情况下ColorWheel它并不是真正的奖励…但这就是ColorEditor控制最适合的!