WPF读书笔记:2.Base Brushes
2008-07-04 00:29 无常 阅读(857) 评论(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:
最简单的单色画刷,
窗口背景颜色即改为全红色。
Brushes类定义有141个标准单色画刷,但这些画刷处于“冻结(frozen)”状态,如果尝试修改这些画刷的值时就会抛出异常:
但是可以复制一份没有处于冻结状态的画刷副本,如以下代码是允许的:
LinearGradientBrush 线性渐变画刷:
渐变画刷可以将二种或以上的颜色混合渐变。渐变画刷最简单的使用:
运行后的效果:
渐变画刷中定义的点是相对于填充区域范围,如(0,0)是填充区域左上角的点,(1,1)为右下角。如将以上创建画笔对象代码改为:
即为垂直方向渐变:
渐变画刷还可以使用GracientStop类来指定多个“关键颜色”点,如定义彩虹画刷:
效果如下:
RadialGradientBrush 放射状渐变画刷:
与线性画刷不同的是放射状画刷不需要定义起始和终止点,它默认的中心点是(0.5,0.5),即填充区域的中心。
效果如下:
当然射线中心点和X/Y方向的渐变倍数也是可以任意修改的:
brush.GradientOrigin = new Point(0, 0);
brush.RadiusX = 1.5;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架