【WPF】一个简单的ColorPicker控件

斯克迪亚看到一篇WPF动态改变主题颜色的文章,来了兴趣,于是自己搞了个简单的ColorPicker控件。

 

控件其实很简单,定义了5个依赖属性 

FinalBrushProperty, AProperty, RProperty, GProperty, BProperty

然后当A,R,G,B发生变化时,构造新的FinalBrush

在FinalBrush发生变化时,更新ARGB的值。

 

Code

 

在ColorPicker的模板里面,分别放置4个Slider绑定到ARGB,一个Border绑定到FinalBrush以预览结果。

 

 

Code

 

这个时候,ColorPicker就可以使用了。在Demo里面,我做了一个ColorPickerDialog。它继承自Window,里面放了一个ColorPicker控件,然后将它的FinalBrush属性绑定到资源中的WindowBackground上。这样打开Dialog的时候,它的颜色自动和资源的颜色同步。同时,监听它的ColorPicker的FinalBrushChanged事件,更新资源中的颜色。这样,当我们调节ColorPickerDialog的颜色的时候,Window的颜色同步变化。

当然,你可以做的更完善,比如添加一个确定和取消按钮,当取消的时候恢复原来的颜色。或者放一个CheckBox,指定是否同步预览。

我的美工功底比斯克迪亚差远了,呵呵,就是原始的样式。

源代码下载:https://files.cnblogs.com/RMay/ChangeColor.rar

 

晕啊,用Chrome编辑有问题。

 

posted @   大佛脚下  阅读(3846)  评论(5编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示