【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,指定是否同步预览。

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

源代码下载:

 附件: 您所在的用户组无法下载或查看附件



(文/RMay  出处/博客园)

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [WPF] 的这些文章也感兴趣:

WPF与混淆器
WPF动态改变主题颜色
[Prism]Composite Application Guidance for WPF(1)--概览
【WPF】一个类似于QQ面板的GroupShelf控件
WPF中对ListView排序
WPF学习之数据绑定
WPF实现自定义列表项呈现内容
.NET框架图解之九:WPF
PRISM:一个WPF的合成UI框架
[Prism]Composite Application Guidance for WPF(7)——模块