当前位置: 首页 > news >正文

WPF入门(四)-线形区域Path内容填充之渐变色(LinearGradientBrush)

WPF入门(四)->线形区域Path内容填充之渐变色(LinearGradientBrush)
原文: WPF入门(四)->线形区域Path内容填充之渐变色(LinearGradientBrush)

前面我们介绍到,Path对象表示一个用直线或者曲线连接的图形,我们可以使用Path.Data属性来设置该图形的形状,同时我们也可以使用Data.Fill属性来设置该图形中的填充色或背景图片等。

下面我们先来看一段代码

< Window  x:Class ="WPF.SimpleGraph.PathFill.Window1"
        xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
        Title
="Window1"  Height ="300"  Width ="300" >
    
< Canvas >
        
< Path  Stroke ="DarkGray"  StrokeThickness ="2" >
            
< Path.Data >
                
< PathGeometry >
                    
< PathFigure  StartPoint ="40,40"  IsClosed ="True" >
                        
< LineSegment  Point ="40,130" ></ LineSegment >
                        
< ArcSegment  Point ="60,150"  Size ="20,20"   ></ ArcSegment >
                        
< LineSegment  Point ="200,150" ></ LineSegment >
                        
< ArcSegment  Point ="220,130"  Size ="20,20" ></ ArcSegment >
                        
< LineSegment  Point ="220,40" ></ LineSegment >
                        
< ArcSegment  Point ="200,20"  Size ="20,20" ></ ArcSegment >
                        
< LineSegment  Point ="60,20" ></ LineSegment >
                        
< ArcSegment  Point ="40,40"  Size ="20,20" ></ ArcSegment >
                    
</ PathFigure >
                
</ PathGeometry >
            
</ Path.Data >
            
< Path.Fill >
                
< LinearGradientBrush  StartPoint ="0,0"  EndPoint ="1,1" >
                    
< GradientStop  Color ="White"  Offset ="0.25" ></ GradientStop >
                    
< GradientStop  Color ="LightBlue"  Offset ="0.5" ></ GradientStop >
                    
< GradientStop  Color ="Blue"  Offset ="0.75" ></ GradientStop >
                    
< GradientStop  Color ="DarkBlue"  Offset ="1" ></ GradientStop >
                
</ LinearGradientBrush >
            
</ Path.Fill >
        
</ Path >
    
</ Canvas >
</ Window >

它的执行结果是:

 

下面我们来分析一下该图形的产生原理

首先,我们通过Path.Data来绘制了一个弧形角的矩形

然后,使用Path.Fill来向该矩形中填充渐变色。

 

 LinearGradientBrush类:使用线性渐变绘制区域。

我们可以使用LinearGradientBrush类来绘制一个颜色渐变的区域,它有一个StartPoint属性表示线性渐变的二维起始坐标,而EndPoint指渐变的终止坐标。默认的线性渐变是沿对角方向进行的。

如图所示,它描绘了以对角线方向描绘渐变线

渐变值的取值范围是0-1,它用小数来表示从起点到终点的比率

比如说,我们想要以水平中轴来做渐变线(如下图)

我们可以将调整StartPoint和EndPoint

< LinearGradientBrush  StartPoint ="0,0.5"  EndPoint ="1,0.5" >

 

我们可以使用GradientStop来描述渐变的颜色和位置。

 GradientStop类:描述渐变中过渡点的位置和颜色。

 GradientStop的Color属性表示渐变的颜色,Offset表示渐变从上一个位置开始,到Offset位置结束的渐变

例如下面的代码

< LinearGradientBrush  StartPoint ="0,0.5"  EndPoint ="1,0.5" >
    
< GradientStop  Color ="Yellow"  Offset ="0.5" ></ GradientStop >
    
< GradientStop  Color ="LightBlue"  Offset ="0.7" ></ GradientStop >
</ LinearGradientBrush >

 它表示从0-0.5这个段区域的颜色是Yellow

0.5-0.7这段区域表示从Yellow到LightBlue的渐变

0.7-1这段区域的颜色是LightBlue

posted on 2019-01-11 14:13 NET未来之路 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/10254876.html

相关文章:

  • flask请求流程
  • 浅谈贝叶斯公式
  • 第k个素数
  • 21纯 CSS 创作文本滑动特效的 UI 界面
  • canvas-画圆心的算法
  • [20190113]四校联考
  • 在哪个生命周期事件中,你会做出AJAX请求,为什么?
  • 前进的步伐,应该被记录
  • PIE SDK Command、Tool、Control的调用和拓展
  • 版本,认证,权限
  • 初学HTML-1
  • 实现复杂状态机的一种思路
  • 【安全测试自学】初探web安全处测试(二)
  • URAL1966 Cipher Message 3
  • windows 下使用 sc 添加创建exe服务;
  • echarts花样作死的坑
  • Java 23种设计模式 之单例模式 7种实现方式
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • STAR法则
  • WePY 在小程序性能调优上做出的探究
  • zookeeper系列(七)实战分布式命名服务
  • 闭包--闭包之tab栏切换(四)
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 对象引论
  • 蓝海存储开关机注意事项总结
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 王永庆:技术创新改变教育未来
  • 中文输入法与React文本输入框的问题与解决方案
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • elasticsearch-head插件安装
  • Java总结 - String - 这篇请使劲喷我
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ###C语言程序设计-----C语言学习(3)#
  • #DBA杂记1
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (C语言)球球大作战
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (规划)24届春招和25届暑假实习路线准备规划
  • (过滤器)Filter和(监听器)listener
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .Net IOC框架入门之一 Unity
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .net实现客户区延伸至至非客户区
  • .NET委托:一个关于C#的睡前故事
  • .Net中wcf服务生成及调用
  • .stream().map与.stream().flatMap的使用
  • .考试倒计时43天!来提分啦!