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
WPF入门(四)->线形区域Path内容填充之渐变色(LinearGradientBrush)的更多相关文章
- WPF入门(四)->线形区域Path内容填充之填充图(ImageBrush)
原文:WPF入门(四)->线形区域Path内容填充之填充图(ImageBrush) 前面我们提到了LinearGradientBrush可以用来画渐变填充图,那么我们同时也可以使用ImageBr ...
- WPF 入门笔记之控件内容控件
一.控件类 在WPF中和用户交互的元素,或者说.能够接受焦点,并且接收键盘鼠标输入的元素所有的控件都继承于Control类. 1. 常用属性: 1.1 Foreground:前景画刷/前景色(文本颜色 ...
- WPF入门教程系列(一) 创建你的第一个WPF项目
WPF入门教程系列(一) 创建你的第一个WPF项目 WPF基础知识 快速学习绝不是从零学起的,良好的基础是快速入手的关键,下面先为大家摞列以下自己总结的学习WPF的几点基础知识: 1) C#基础语法知 ...
- WPF入门教程系列(二) 深入剖析WPF Binding的使用方法
WPF入门教程系列(二) 深入剖析WPF Binding的使用方法 同一个对象(特指System.Windows.DependencyObject的子类)的同一种属性(特指DependencyProp ...
- WPF入门教程系列一
WPF入门教程 一. 前言 公司项目基于WPF开发,最近项目上线有点空闲时间写一篇基于wpf的基础教材,WPF也是近期才接触,学习WPF也是在网上查资料与微软的MSDN进行学习,写本博客的目为了温 ...
- WPF入门:数据绑定
上一篇我们将XAML大概做了个了解 ,这篇将继续学习WPF数据绑定的相关内容 数据源与控件的Binding Binding作为数据传送UI的通道,通过INotityPropertyChanged接口的 ...
- WPF入门教程系列三——Application介绍(续)
接上文WPF入门教程系列二——Application介绍,我们继续来学习Application 三.WPF应用程序的关闭 WPF应用程序的关闭只有在应用程序的 Shutdown 方法被调用时,应用程序 ...
- WPF入门教程系列二——Application介绍
一.Application介绍 WPF和WinForm 很相似, WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只 ...
- WPF入门(三)->两个几何图形合并(CombinedGeometry)
原文:WPF入门(三)->两个几何图形合并(CombinedGeometry) 在WPF中,提供了一个CombinedGeometry对象可以使两个几何图形合并产生效果 CombinedGeom ...
随机推荐
- git在本地分支上 git pull远程分支时,状况
git 在pull或者合并分支的时候有时会遇到这个界面.可以不管(直接下面3,4步),如果要输入解释的话就需要: 1.按键盘字母 i 进入insert模式 2.修改最上面那行黄色合并信息,可以不修改 ...
- datetime小练习
题目: 1.计算你的生日比如近30年来(1990-2019),每年的生日是星期几,统计一下星期几出现的次数比较多2,生日提醒,距离生日还有几天 # !/usr/bin/env python # -*- ...
- 国内计算机类期刊 SCI收录:
国内计算机类期刊 SCI收录: JOURNAL OF COMPUTER SCIENCE AND TECHNOLOGY,计算机科学与技术,英文,双月刊, SCIE 国内计算机类期刊 EI收录: 核心类 ...
- [D3] Animate with the General Update Pattern in D3 v4
In D3, the General Update Pattern is the name given to what happens when a data join is followed by ...
- [Ramda] Simple log function for debugging Compose function / Using R.tap for logging
const log = function(x){ console.log(x); return x; } const get = R.curry(function(prop, obj){ return ...
- echarts同一页面四个图表切换的js数据交互
需求:点击tab页,切换四个不同的图表,ajax向后台请求数据,展示在四个不同的图表中. 其余的就不多说,直接上js代码了 $(function() { $("#heart").o ...
- Android 仿今日头条频道管理(下)(GridView之间Item的移动和拖拽)
前言 上篇博客我们说到了今日头条频道管理的操作交互体验,我也介绍了2个GridView之间Item的相互移动.详情请參考:Android 仿今日头条频道管理(上)(GridView之间Item的移动和 ...
- Android, IOS 史上最强多语言国际化,不仅第一次会尾随系统,并且会保存用户的语言设置
劲爆消息,我提供源代码了.你能够先看完再下载.也能够先下载再看完, android源代码地址: https://github.com/hebiao6446/------Bluetooth-Androi ...
- C#判断操作系统类型
操作系统 PlatformID 主版本号 副版本号 Windows95 1 4 0 Windows98 1 4 10 WindowsMe 1 4 90 WindowsN ...
- ZOJ 1136 Longest Ordered Subsequence DP
传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1136 题目大意:给定一串序列,求最长的升序列长度,如1, 7, 3, ...