C# 圆盘(hsv)颜色选择器

news2024/12/22 19:00:14

【首先贴上github链接:适用于 Windows 窗体的 Cyotek 拾色器控件】

在这里插入图片描述

 

一、简单使用教程

此处是我使用Cyotek.Windows.Forms.ColorPickers库部分功能的一些经验和思路总结,没有太多深入地去学习,如果有哪位大佬有深入学习使用的话,可以推给我大家一起学习一下。

二、官方介绍

 Cyotek.Windows.Forms.ColorPickers库包含一系列自定义控件和实用程序类,适用于使用颜色的 Windows 窗体应用程序。控件可用于通过 HSL 进行颜色选择ColorWheel,ColorGrid 具有许多自定义选项,ColorEditor用于通过 RGB 或 HSL 输入颜色,以及ScreenColorPicker用于从正在运行的应用程序中捕获颜色。

调色板可以以多种不同的格式加载和保存,包括 Adob​​e PhotoShop 色板文件、JASC 调色板、Gimp 调色板等(请参阅下面的调色板和外部调色板文件)。

有关这些控件的更多信息,请参阅cyotek.com 上带有标签的文章。colorpicker

(1)获取Lib

获取库的最简单方法是通过NuGet
Install-Package Cyotek.Windows.Forms.ColorPicker
如果您不使用 NuGet,可以从GitHub 发布页面获取预编译的二进制文件。

当然,您可以随时获取源代码并自己构建!

(2)控件

1. 颜色网格控件 ColorGrid Controls

ColorGrid 控件演示此控件显示颜色网格,并支持主调色板和自定义调色板。有几个属性可用于配置控件的显示,也有一些行为选项,例如内置的颜色编辑和支持自动添加不在主调色板中的新颜色。

2.色轮控制 ColorWheel

ColorWheel控制演示此控件显示 RGB 颜色的径向轮,并允许从轮中的任何点进行选择。ShowAngleArrowShowCenterLinesShowSaturationRing属性可用于显示有用的装饰,而Lightness和Alpha属性可用于组成最终颜色,但不能在轮子上直接编辑。
SecondaryColorsSecondarySelectionSize属性允许您在轮盘上显示其他颜色例如用于显示关系。

3.颜色滑块控件 ColorSlider

ColorSlider 控件演示一组控件(从单个基类继承),允许通过彩色条选择值。与 TrackBar控件类似,您有几个选项可用于指定拖动手柄的位置和条形方向。您还可以自定义填充和轮廓颜色,或将其完全替换为自定义图像。

4.颜色编辑器控件 ColorEditor

ColorEditor 控件演示

此控件允许通过标准界面编辑 RGB 或 HSL 颜色。您还可以通过 6 或 8 个字符的十六进制表示法输入颜色,或从命名的 Web 和系统颜色中进行选择。
可以通过 ShowAlphaChannelPreserveAlphaChannel属性配置 alpha 通道的使用。ShowHexShowHslShowRgb属性可用于显示或隐藏编辑器组件或者,NubSizeNubColorNubOutlineColor 属性可用于自定义滑块的外观。

5.ScreenColorPicker 控件

ScreenColorPicker 控件演示此控件允许用户从屏幕上显示的任何像素中选择颜色。用户可以通过单击并拖动控件来触发操作,也可以通过该CaptureMouse方法以编程方式完成,允许通过其他操作(例如热键)触发选择。该Zoom属性可用于设置预览的网格大小。

6.颜色选择器对话框窗体 ColorPickerDialog

ColorPickerDialog 表单演示

此表单将前面的控件放在一个随时可用的对话框中。
通过该属性支持自定义颜色CustomColors,用户还可以将外部调色板文件加载或保存到其中。您可以使用ShowLoadShowSave属性来启用或禁用此功能,并使用CustomColorsLoadingCustomColorsSaving事件来覆盖内置行为并提供您自己的逻辑。

7.颜色编辑器管理器 ColorEditorManager

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控制最适合的!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/744953.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云限时福利:WoSign品牌SSL证书首购4折优惠

阿里云限时福利:WoSign品牌SSL证书首购4折优惠 阿里云SSL证书限时首购福利:2023年07月04日至08月31日,阿里云平台WoSign品牌系列SSL证书首购4折优惠,惊喜折扣、限时促销、限量抢购,机会不容错过! 阿里云平…

PCB防静电设计的必要性

平时通过走路穿衣等日常活动带来的摩擦,会产生不同幅值的静电电压,但其能量很小不会对人体产生伤害,不过对于电子元器件来说,这种静电能量却是不能忽视的。 在干燥的环境下,人体静电(ESD)的电压很容易超过6~35Kv&#…

Ubuntu 22安装使用Codon高性能Python编译器记录

Ubuntu 22安装使用Codon高性能Python编译器记录 Codon 在官方 Ubuntu 存储库中没有直接的教程,但可以尝试如下方法进行安装。 一、更新系统 终端输入: sudo apt update以及 sudo apt upgrade二、安装curl 输入指令: sudo apt install …

DHCP静态分配IP地址、IP-MAC绑定、静态ARP有哪些区别?

DHCP静态分配IP地址、IP-MAC绑定、静态ARP这三个功能都涉及到IP地址和MAC地址的对应关系,但其应用场景及实现的功能有所不同,如表所示: 原文地址https://support.huawei.com/enterprise/zh/knowledge/EKB1000052241

Linux下如何部署Nuxt项目(通过ip直接访问)

一、基础环境准备 1.确定服务器的Linux的系统版本 cat /etc/issue 不要问为什么,问就是吃过大亏 2.确定 node mysql是否安装,版本尽量与本地开发环境一致 如果没有安装建议自己百度一下,要根据Linux系统及版本来进行安装; 二、…

企业信息化-亿发软件,中小企业数字化转型解决方案供应商

因自身规模和企业性质,中小型企业需要有效管理企业资源,因此企业信息化管理至关重要。在此背景下,为中小企业量身定制的信息化管理系统可以为中小型企业带来显著的效益。能够实现数据的迅速整合,便于跨部门的协调和管理&#xff0…

计算机网络|思维导图|自顶向下方法|MindMaps资料分享

前言 那么这里博主先安利一下一些干货满满的专栏啦! 手撕数据结构https://blog.csdn.net/yu_cblog/category_11490888.html?spm1001.2014.3001.5482这里包含了博主很多的数据结构学习上的总结,每一篇都是超级用心编写的,有兴趣的伙伴们都支…

【JMeter】同步定时器Synchronizing Timer集合点功能

LoadRunner 中有一个可以设置集合点的功能,顾名思义是设置多个虚拟用户等待到一个时间点,都到齐集合后一起发请求达到并发的目的 集合点是什么意思呢? 阻塞线程,直到指定的线程数量到达后,再一起释放,可以…

【Leetcode】206. 反转链表

题意:反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 一开始需要 cur head pre None 第二步反转指针 cur.next pre 接着再继续移动指针 tmp cur.next // 放在反转之前 pre cur cur tmp 完整…

Java使用JNA调用C文件

1.构建项目 准备最简单的maven项目&#xff0c;结构如下&#xff1a; 引入依赖&#xff1a; <dependency><groupId>net.java.dev.jna</groupId><artifactId>jna</artifactId><version>5.3.1</version></dependency>2.构建c…

2023-7-12-第十七式状态模式

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

IMPALA 查询优化之元数据

目录 说明 背景 问题复现 环境 sql 排查 分析过程 结果分析 总结 说明 sql优化中重要的一环是查询改写&#xff0c;一个表的元数据有利于sql优化器准确的评估sql代价&#xff0c;获取最佳的sql执行计划&#xff0c;如下图所示&#xff0c;本文验证通过加载刷新impala …

Maya文件加载缓慢,这样处理就可以

将场景加载到Maya中时&#xff0c;需要较长时间才能打开场景。 有时&#xff0c;CPU使用率可能会达到100%。 原因&#xff1a; 在文件上工作一段时间后&#xff0c;场景通常会与未使用的显示层、集和节点混淆。这些未使用的图元可能会导致打开文件时出现滞后。 解决方案&…

CMU 15-445 -- Query Processing - 07

CMU 15-445 -- Query Processing - 07 引言Query ProcessingProcessing ModelIterator ModelMaterialization ModelVectorization Model小结 Access MethodsSequential ScanZone MapsLate MaterializationHeap Clustering Index ScanMulti-index ScanIndex Scan Page Sorting E…

文件操作--按格式读写文件

C语言允许按指定格式读写文件。函数fscanf&#xff08;&#xff09;用于按指定格式从文件读数据。其函数原型为&#xff1a; int fscanf (FILE *fp, const char *format ,...)&#xff1b; 其中&#xff0c;第一个参数为文件指针&#xff0c;第2个参数为格式控制参数&#x…

2023届网络安全岗秋招面试题及面试经验分享

Hello&#xff0c;各位小伙伴&#xff0c;我作为一名网络安全工程师曾经在秋招中斩获&#x1f51f;个offer&#x1f33c;&#xff0c;并在国内知名互联网公司任职过的职场老油条&#xff0c;希望可以将我的面试的网络安全大厂面试题和好运分享给大家~ 转眼2023年秋招已经到了金…

Linux ❀ Openssh 8.9p1源码升级教程

文章目录 升级操作注意事项&#xff1a;1. 安装依赖2. 执行升级2.1 上传压缩包并保存配置2.2 开始升级 升级操作注意事项&#xff1a; 编译过程需要依赖&#xff0c;必须安装完成!!!SSH服务升级过程可能会导致无法远程连接服务器!!!若必须远程登录必须确认telnet服务可用!!!升…

3D格式转换工具HOOPS Exchange功能大盘点:快速、准确的CAD数据转换SDK!

HOOPS Exchange SDK是一套C软件库&#xff0c;使开发团队能够快速将可靠的二维和三维CAD导入和导出到他们的应用程序中&#xff0c;访问广泛的数据&#xff0c;包括边界表示&#xff08;B-REP&#xff09;、产品制造信息&#xff08;PMI&#xff09;、模型树、视图、持久性ID、…

C语言—模拟实现memcpy,memmove

1.memcpy函数的介绍与实现 函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。 这个函数在遇到 \0 的时候并不会停下来。 如果source和destination有任何的重叠&#xff0c;复制的结果都是未定义的。 void * memcpy ( void * destination, const v…

MySQL原理探索——30 答疑文章(二):用动态的观点看加锁

在第20和21篇文章中&#xff0c;介绍了 InnoDB 的间隙锁、next-key lock&#xff0c;以及加锁规则。 今天这篇答疑文章的主题&#xff0c;即&#xff1a;用动态的观点看加锁。 为了方便理解&#xff0c;我们再一起复习一下加锁规则。这个规则中&#xff0c;包含了两个“原则”、…