WPF的渐变画刷,这些画刷改变不同DrawingBrush对象的几何图形,创建渐变为不同形状的平铺模式。

下面是来自一个国外的一些渐变画刷案例:

案例1:定义一个简单的直线,这个几何图形是基于DrawingBrush的扩展,当直线是垂直或水平时,这条线的宽度扩展25个单位。

案例源码:

<!-- ========================================================AnimatedDrawingBrush1.xaml (c) 2006 by Charles Petzold======================================================== -->
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><Page.Background><DrawingBrush TileMode="FlipXY" ViewportUnits="Absolute" Viewport="0 0 25 25"><DrawingBrush.Drawing><GeometryDrawing><GeometryDrawing.Geometry><PathGeometry Figures="M 0 0 L 25 0"><PathGeometry.Transform><RotateTransform x:Name="xform" /></PathGeometry.Transform></PathGeometry></GeometryDrawing.Geometry><GeometryDrawing.Pen><Pen Brush="Black" Thickness="1" /></GeometryDrawing.Pen></GeometryDrawing></DrawingBrush.Drawing></DrawingBrush></Page.Background><Page.Triggers><EventTrigger RoutedEvent="Page.Loaded"><BeginStoryboard><Storyboard><DoubleAnimation Storyboard.TargetName="xform" Storyboard.TargetProperty="Angle"From="0" To="360" Duration="0:0:10"RepeatBehavior="Forever" /></Storyboard></BeginStoryboard></EventTrigger></Page.Triggers>
</Page>

效果如下图:

渐变前效果:

渐变后效果:

案例2:定义一个嵌套的视图盒子,这个盒子是使用Viewbox,当盒子的角度改变时,通过会裁剪盒子,这时每个盒子会相邻的盒子融合

案例源码:

<!-- ========================================================AnimatedDrawingBrush2.xaml (c) 2006 by Charles Petzold======================================================== -->
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><Page.Background><DrawingBrush TileMode="FlipXY" ViewportUnits="Absolute" Viewport="0 0 30 30"ViewboxUnits="Absolute" Viewbox="-10 -10 20 20" ><DrawingBrush.Drawing><GeometryDrawing><GeometryDrawing.Geometry><PathGeometry Figures="M 0 0 L 10 10 L -10 10 Z"><PathGeometry.Transform><RotateTransform x:Name="xform" /></PathGeometry.Transform></PathGeometry></GeometryDrawing.Geometry><GeometryDrawing.Pen><Pen Brush="Black" Thickness="1" /></GeometryDrawing.Pen></GeometryDrawing></DrawingBrush.Drawing></DrawingBrush></Page.Background><Page.Triggers><EventTrigger RoutedEvent="Page.Loaded"><BeginStoryboard><Storyboard><DoubleAnimation Storyboard.TargetName="xform" Storyboard.TargetProperty="Angle"From="0" To="360" Duration="0:0:10"RepeatBehavior="Forever" /></Storyboard></BeginStoryboard></EventTrigger></Page.Triggers>
</Page>

效果图如下:

渐变前的效果:

渐变后的效果:

案例3:定义了一个旋转的螺旋,旋转方向是逆时针

案例源码:

<!-- ========================================================AnimatedDrawingBrush3.xaml (c) 2006 by Charles Petzold======================================================== -->
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><Page.Background><DrawingBrush x:Name="brush" TileMode="Tile" ViewportUnits="Absolute" Viewport="0 0 20 20"ViewboxUnits="Absolute" Viewbox="-80 -80 160 160" ><DrawingBrush.Drawing><GeometryDrawing><GeometryDrawing.Geometry><PathGeometry Figures="M 0 0 C   5   5,   5   5,   0  10C  -5  15, -15  10, -20   0C -25 -10, -15 -25,   0 -30C  15 -35,  35 -20,  40   0C  45  20,  25  45,   0  50C -25  55, -55  30, -60   0C -65 -30, -35 -65,   0 -70C  35 -75,  70 -40,  80   0"><PathGeometry.Transform><RotateTransform x:Name="xform" /></PathGeometry.Transform></PathGeometry></GeometryDrawing.Geometry><GeometryDrawing.Pen><Pen Brush="Black" Thickness="5" /></GeometryDrawing.Pen></GeometryDrawing></DrawingBrush.Drawing></DrawingBrush></Page.Background><Page.Triggers><EventTrigger RoutedEvent="Page.Loaded"><BeginStoryboard><Storyboard><RectAnimation Storyboard.TargetName="brush" Storyboard.TargetProperty="Viewport"From="0 0 20 20" To="20 20 20 20" Duration="0:0:01"RepeatBehavior="Forever" /><DoubleAnimation Storyboard.TargetName="xform" Storyboard.TargetProperty="Angle"From="0" To="-360" Duration="0:0:4"RepeatBehavior="Forever" /></Storyboard></BeginStoryboard></EventTrigger></Page.Triggers>
</Page>

效果图如下:

来源网址:http://www.charlespetzold.com/blog/2006/07/230620.html

WPF中的渐变画刷的一些案例相关推荐

  1. 深入WPF中的图像画刷(ImageBrush)之1——ImageBrush使用举例

    深入WPF中的图像画刷(ImageBrush)之1--ImageBrush使用举例 2010年06月11日 星期五 15:20 昨天我在<简述WPF中的画刷(Brush) >中简要介绍了W ...

  2. GDI+ 中路径渐变画刷的使用

    背景 路径是一系列相互连接的直线和曲线,由许多不同类型的点所构成,用于表示复杂的不规则图形, GraphicsPath 类表示. 路径渐变画刷允许设置颜色从中心向边界渐变的画刷,可以设置中心点颜色和边 ...

  3. WPF图形之纯色画刷和渐变画刷的使用

    背景介绍   在WPF中,画刷的使用无处不在,可以说画刷是整个WPF体系里不可或缺的一部分,在画刷中,从渲染效果的特征来看,可以分为纯色画刷.线性渐变画刷.径向渐变画刷.每一种画刷都有其适用的场景,下 ...

  4. WPF线性渐变画刷应用之——炫彩线条

    原文:WPF线性渐变画刷应用之--炫彩线条 效果图: Xaml代码: <Rectangle Width="800" Height="10"> < ...

  5. WPF(C#) LinearGradientBrush线性渐变画刷

    LinearGradientBrush线性渐变画刷 LinearGradientBrush其实很简单,我们只需要关注5个属性,使用这5个属性你就可以完成这个画刷几乎所有的变化. 一.属性介绍 1.St ...

  6. 转 Silverlight开发历程—(画刷与着色之线性渐变画刷)

    转自:http://blog.csdn.net/work201003/article/details/6960427 线性渐变画刷(LinearGradientBrush)用来填充一个复合渐变色到一个 ...

  7. GDI+学习笔记(六)渐变画刷

    画刷,顾名思义,就是像画刷一样,向设备上绘制,还记得小时候常唱的首歌,"我是一个粉刷匠.." 好吧,跑题了. 本系列博客希望尽可能简单的描述每项功能,而不希望把每个参数都介绍的详详 ...

  8. GdiplusFlat(4)单色画刷 和 线性渐变画刷

    本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article ...

  9. GDI+ 学习记录(11): 路径渐变画刷 - PathGradientBrush

    为什么80%的码农都做不了架构师?>>>    //路径渐变画刷 varg: TGPGraphics;path: TGPGraphicsPath;pb: TGPPathGradien ...

最新文章

  1. Socket桥(转载)
  2. 在 Linux 下运行 ASP.NET 2.0
  3. cmake find_package 中,include_directories,target_link_libraries 的值怎么知道?
  4. 五大存储模型关系模型、键值存储、文档存储、列式存储、图形数据
  5. Linux环境上的图形化界面SVN客户端软件“RabbitVCS”
  6. 牛客 - 红蓝图(克鲁斯卡尔重构树的dfs序上建主席树)
  7. 卷成这样,非逼我用RTX 3090?(深度学习GPU平台种草
  8. c++ windows 蓝牙库_c++ - “是否有一个多操作系统蓝牙库?”后续:QT Linux到Windows 10蓝牙 - 堆栈内存溢出...
  9. mapper接口中的方法,example实例解析
  10. OllyDbg 与 x64Dbg 与 Windbg 与 IDA 区别是什么?
  11. BIM项目分享---港珠澳大桥的BIM应用与管理
  12. 企业综合安防管理平台
  13. 在东京生活的中国IT程序员
  14. java中修改上传图片大小,springMVC MultipartFile 上传图片时修改图片大小
  15. @Secured()、 @PreAuthorize() 、 @RolesAllowed()
  16. MFC中CFile读取中文乱码
  17. lmbench内存延迟测试代码分析
  18. fprintf() 函数简介
  19. SparkSQL之UDF、UDAF、UDTF
  20. 操作系统的基本概念和功能

热门文章

  1. k-anonymity匿名算法
  2. 学业水平测试计算机考试查询,学业水平考试成绩查询方法 怎么查
  3. 2022春招前端最新面试题分享(九州云)
  4. 【NLP Tool -- NLTK】NLTK进行英文情感分析、分词、分句、词性标注(附代码)
  5. VMware16安装Ubuntu22.04.1详细教程
  6. C#设计一个简单的计算器,实现两个数的加,减,乘,除,求幂等计算,运行效果如下图所示:
  7. 【报告分享】2021年中国IT服务供应链数字化升级研究报告-艾瑞咨询(附下载)
  8. 卷积码viterbi软译码的MATLAB函数调用
  9. Css3飞机动画特效
  10. 魅族手机支持鸿蒙os吗,魅族宣布接入鸿蒙OS,哪款产品将“尝鲜”?