【LinearGradientBrush】线性渐变笔刷

简介: 本示例演示如何使用 LinearGradientBrush 类来绘制带有线性渐变的区域。在下面的示例中,Rectangle 的Fill 是用从黄色依次过渡到红色、蓝色和浅绿色的对角线性渐变来绘制的。XAML ...

本示例演示如何使用 LinearGradientBrush 类来绘制带有线性渐变的区域。在下面的示例中,Rectangle 的Fill 是用从黄色依次过渡到红色、蓝色和浅绿色的对角线性渐变来绘制的。

XAML
<!-- This rectangle is painted with a diagonal linear gradient. --> <Rectangle Width="200" Height="100">   <Rectangle.Fill>     <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">       <GradientStop Color="Yellow" Offset="0.0" />       <GradientStop Color="Red" Offset="0.25" />       <GradientStop Color="Blue" Offset="0.75" />       <GradientStop Color="LimeGreen" Offset="1.0" />     </LinearGradientBrush>   </Rectangle.Fill> </Rectangle> 
C#
Rectangle diagonalFillRectangle = new Rectangle(); diagonalFillRectangle.Width = 200; diagonalFillRectangle.Height = 100;  // Create a diagonal linear gradient with four stops.    LinearGradientBrush myLinearGradientBrush =     new LinearGradientBrush(); myLinearGradientBrush.StartPoint = new Point(0,0); myLinearGradientBrush.EndPoint = new Point(1,1); myLinearGradientBrush.GradientStops.Add(     new GradientStop(Colors.Yellow, 0.0)); myLinearGradientBrush.GradientStops.Add(     new GradientStop(Colors.Red, 0.25));                 myLinearGradientBrush.GradientStops.Add(     new GradientStop(Colors.Blue, 0.75));         myLinearGradientBrush.GradientStops.Add(     new GradientStop(Colors.LimeGreen, 1.0));  // Use the brush to paint the rectangle. diagonalFillRectangle.Fill = myLinearGradientBrush; 

下图显示了上一示例创建的渐变。

对角线方向线性渐变

若要创建水平线性渐变,请将 LinearGradientBrush 的 StartPoint 和 EndPoint 分别改为 (0,0.5) 和 (1,0.5)。在下面的示例中,Rectangle 是用水平线性渐变来绘制的。

XAML
<!-- This rectangle is painted with a horizontal linear gradient. --> <Rectangle Width="200" Height="100">   <Rectangle.Fill>     <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">       <GradientStop Color="Yellow" Offset="0.0" />       <GradientStop Color="Red" Offset="0.25" />       <GradientStop Color="Blue" Offset="0.75" />       <GradientStop Color="LimeGreen" Offset="1.0" />     </LinearGradientBrush>   </Rectangle.Fill> </Rectangle> 
C#
Rectangle horizontalFillRectangle = new Rectangle(); horizontalFillRectangle.Width = 200; horizontalFillRectangle.Height = 100;  // Create a horizontal linear gradient with four stops.    LinearGradientBrush myHorizontalGradient =     new LinearGradientBrush(); myHorizontalGradient.StartPoint = new Point(0,0.5); myHorizontalGradient.EndPoint = new Point(1,0.5); myHorizontalGradient.GradientStops.Add(     new GradientStop(Colors.Yellow, 0.0)); myHorizontalGradient.GradientStops.Add(     new GradientStop(Colors.Red, 0.25));                 myHorizontalGradient.GradientStops.Add(     new GradientStop(Colors.Blue, 0.75));         myHorizontalGradient.GradientStops.Add(     new GradientStop(Colors.LimeGreen, 1.0));  // Use the brush to paint the rectangle. horizontalFillRectangle.Fill = myHorizontalGradient;   

下图显示了上一示例创建的渐变。

水平线性渐变

若要创建垂直线性渐变,请将 LinearGradientBrush 的 StartPoint 和 EndPoint 分别改为 (0.5,0) 和 (0.5,1)。在下面的示例中,Rectangle 是用垂直线性渐变来绘制的。

XAML
<!-- This rectangle is painted with a vertical gradient. --> <Rectangle Width="200" Height="100">   <Rectangle.Fill>     <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">       <GradientStop Color="Yellow" Offset="0.0" />       <GradientStop Color="Red" Offset="0.25" />       <GradientStop Color="Blue" Offset="0.75" />       <GradientStop Color="LimeGreen" Offset="1.0" />     </LinearGradientBrush>   </Rectangle.Fill> </Rectangle> 
C#
Rectangle verticalFillRectangle = new Rectangle(); verticalFillRectangle.Width = 200; verticalFillRectangle.Height = 100;  // Create a vertical linear gradient with four stops.    LinearGradientBrush myVerticalGradient =     new LinearGradientBrush(); myVerticalGradient.StartPoint = new Point(0.5,0); myVerticalGradient.EndPoint = new Point(0.5,1); myVerticalGradient.GradientStops.Add(     new GradientStop(Colors.Yellow, 0.0)); myVerticalGradient.GradientStops.Add(     new GradientStop(Colors.Red, 0.25));                 myVerticalGradient.GradientStops.Add(     new GradientStop(Colors.Blue, 0.75));         myVerticalGradient.GradientStops.Add(     new GradientStop(Colors.LimeGreen, 1.0));  // Use the brush to paint the rectangle. verticalFillRectangle.Fill = myVerticalGradient;   

下图显示了上一示例创建的渐变。

垂直线性渐变
说明:

此主题中的示例使用默认坐标系来设置起点和终点。默认坐标系是相对于边界框的:0 表示边界框的 0%,1 表示边界框的 100%。可以通过将 MappingMode 属性设置为值 BrushMappingMode..::.Absolute 来更改此坐标系。绝对坐标系不是相对于边界框的。值直接在本地坐标系中解释。

有关更多示例,请参见 Brush 示例。有关渐变以及其他类型的画笔的更多信息,请参见使用纯色和渐变进行绘制概述

更多代码

如何:使用径向渐变绘制区域 本示例演示如何使用 RadialGradientBrush 类来绘制带有径向渐变的区域。
目录
相关文章
|
SQL 搜索推荐 算法
一份阅读量突破10万+的C#/.NET/.NET Core面试宝典(基础版)
一份阅读量突破10万+的C#/.NET/.NET Core面试宝典(基础版)
184 0
|
分布式计算 大数据 数据处理
Apache Spark:提升大规模数据处理效率的秘籍
【4月更文挑战第7天】本文介绍了Apache Spark的大数据处理优势和核心特性,包括内存计算、RDD、一站式解决方案。分享了Spark实战技巧,如选择部署模式、优化作业执行流程、管理内存与磁盘、Spark SQL优化及监控调优工具的使用。通过这些秘籍,可以提升大规模数据处理效率,发挥Spark在实际项目中的潜力。
960 0
RecyclerView禁止复用
RecyclerView禁止复用
2055 0
|
传感器 API Android开发
Android摄像头采集选Camera1还是Camera2?
Camera1与Camera2是Android平台上的两种摄像头API。Camera1(API1)在Android 5.0后被标记为过时,新项目应优先选用Camera2(API2)。Camera2提供了更精细的控制选项,如曝光时间、ISO感光度等;支持多摄像头管理;采用异步操作提高应用响应速度;并支持RAW图像捕获及实时图像处理。此外,它还具备更好的适配性和扩展性,适用于各类应用场景,如相机应用开发、视频通话和计算机视觉等。因此,在现代Android开发中推荐使用Camera2。
381 0
|
10月前
|
缓存 监控 Java
如何运用JAVA开发API接口?
本文详细介绍了如何使用Java开发API接口,涵盖创建、实现、测试和部署接口的关键步骤。同时,讨论了接口的安全性设计和设计原则,帮助开发者构建高效、安全、易于维护的API接口。
879 4
|
存储 缓存 关系型数据库
【如何选择Mysql服务器的CPU核数及内存大小】
【如何选择Mysql服务器的CPU核数及内存大小】
823 0
|
异构计算
CCF推荐B类会议和期刊总结:(计算机体系结构/并行与分布计算/存储系统领域)
中国计算机学会(CCF)定期发布国际学术会议和期刊目录,为科研人员提供参考。本文总结了计算机体系结构、并行与分布计算、存储系统领域的CCF推荐B类会议和期刊,包括会议和期刊的全称、出版社、dblp文献网址及领域分类。会议涵盖了SoCC、SPAA、PODC等26项重要国际会议,期刊则包括TAAS、TODAES、TECS等9种权威期刊,为相关领域的研究者提供了宝贵的资源。
CCF推荐B类会议和期刊总结:(计算机体系结构/并行与分布计算/存储系统领域)
|
JavaScript
成功解决:Failed to resolve directive: mode
这篇文章介绍了如何解决Vue中遇到的"Failed to resolve directive: mode"错误的两个常见原因及其解决办法:确保指令的单词拼写正确,以及在创建Vue实例之前注册全局指令。
成功解决:Failed to resolve directive: mode
|
Web App开发 数据采集 Python
让ChromeDriver 125顺利运行:解决找不到chromedriver.exe的技巧
本文介绍了如何解决Selenium使用ChromeDriver时遇到的版本不匹配问题,以及如何设置环境变量。同时,文章提供了示例代码,展示如何在Python中配置Selenium使用代理IP、设定User-Agent和Cookie进行网页抓取,以提高爬虫的效率和成功率。确保ChromeDriver与Chrome浏览器版本一致,将`chromedriver.exe`添加到环境变量,然后使用`Options`和`Proxy`类配置代理和浏览器选项,最后通过`webdriver.Chrome()`启动浏览器并执行抓取任务。
1025 0
让ChromeDriver 125顺利运行:解决找不到chromedriver.exe的技巧
|
SQL 存储 小程序
数据库数据恢复—Sql Server数据库文件丢失的数据恢复案例
数据库数据恢复环境: 5块硬盘组建一组RAID5阵列,划分LUN供windows系统服务器使用。windows系统服务器内运行了Sql Server数据库,存储空间在操作系统层面划分了三个逻辑分区。 数据库故障: 数据库文件丢失,主要涉及3个数据库,数千张表。数据库文件丢失原因未知,不能确定丢失的数据库文件的存放位置。数据库文件丢失后,服务器仍处于开机状态,所幸未写入大量数据。
数据库数据恢复—Sql Server数据库文件丢失的数据恢复案例

热门文章

最新文章