WPF 自己做一个颜色选择器

程序开发过程中,经常会遇到需要支持动态配置主题颜色的问题,通常,一个程序会有多种不同的颜色风格主题供选

有时候,更细致一些的地方,会需要支持自己配置颜色,这样我们就需要一个颜色选择器啦,下面是我自己开发的一个颜色选择器。 源码点这里   

WPF 自己做一个颜色选择器

不在意怎么实现的可以不往下看了,很多颜色转换特性和基础代码,参考了一些开源的控件库,在此感谢一下AduSkin  https://www.cnblogs.com/aduskin

 下面啰嗦几句

通常,我们可以使用System.Windows.Forms.ColorDialog

WPF 自己做一个颜色选择器

 个人觉得这个界面有点老旧了,也不是很好用,当你的程序是高度风格定制逼格很高的时候(比如类游戏风格的界面),弹出这么个windowsxp风格的老爷选择框,还是挺出戏的

然而WPF又没有为我们提供这个玩意。那么我们能否自己搞一个那?

参考一下visual stuido 的颜色编辑框,整一个又有哪些困难那?

这个颜色选择器,其实是RGB颜色模式和HSB颜色模式的结合使用,来提供方便直观的颜色选择。

WPF 自己做一个颜色选择器

不理解的小伙伴需要补一补RGB和HSB颜色的相关知识,不然很难理解可以参考下这个博客https://www.cnblogs.com/wang726zq/p/3660581.html

当然其实我也不是很懂这些颜色逻辑,但是只要明白那几个颜色计算的公式,就可以计算出来

1:计算H   

色相取值0°~360°,代表截面上红、黄、绿、青、蓝、粉,红的颜色变化。看下面的代码,从上到下的颜色变化,被均匀的分成6断。且从上到下,分别对应了H值的0-360度

WPF 自己做一个颜色选择器

 2 计算S B

WPF 自己做一个颜色选择器

先看源码把,此处以后再写,一时语塞。