代码改变世界

WPF读书笔记:2.Base Brushes

2008-07-04 00:29  无常  阅读(853)  评论(0编辑  收藏  举报

Color structure:

Color结构体位于System.Window.Media命名空间中,Color使用3个byte属性分别表示R、G、B三原色的颜色分量。当R=G=B=0时为黑色,当R=G=B=255时为白色。此外,有个byte类型的A属性表示此颜色的“不透明度”,其值为0时表示为全透明,值为255时表示不透明。这些都是有winform System.Drawing命名空间中的Color相同的。

此外,Color还支持表示scRGB(也称为scRGB64,因原色使用64位表达)颜色空间。Color结构还有4个float类型的属性scA、scR、scG、scB来描述scRGB颜色空间,值范围为<=1 && >=0,它们和RGB颜色空间中的A、R、G、B属性相对应。

改变Color对象的sc[ARGB]属性时相应的[ARGB]属性也会被影响,反之亦然。

Colors类封装有一百多种常用的颜色。

 

SolidColorBrush:

最简单的单色画刷,

wuchang.cnblogs.com

窗口背景颜色即改为全红色。

Brushes类定义有141个标准单色画刷,但这些画刷处于“冻结(frozen)”状态,如果尝试修改这些画刷的值时就会抛出异常:

image

但是可以复制一份没有处于冻结状态的画刷副本,如以下代码是允许的:

image

 

LinearGradientBrush 线性渐变画刷:

渐变画刷可以将二种或以上的颜色混合渐变。渐变画刷最简单的使用:

image

运行后的效果:

image

渐变画刷中定义的点是相对于填充区域范围,如(0,0)是填充区域左上角的点,(1,1)为右下角。如将以上创建画笔对象代码改为:

image 

即为垂直方向渐变:

image

 

渐变画刷还可以使用GracientStop类来指定多个“关键颜色”点,如定义彩虹画刷:

image

效果如下:

image

 

RadialGradientBrush 放射状渐变画刷:

与线性画刷不同的是放射状画刷不需要定义起始和终止点,它默认的中心点是(0.5,0.5),即填充区域的中心。

image

效果如下:

image

当然射线中心点和X/Y方向的渐变倍数也是可以任意修改的:

brush.GradientOrigin = new Point(0, 0);
brush.RadiusX = 1.5;

image

出处:http://wuchang.cnblogs.com