博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
8天入门wpf—— 第七天 画刷
阅读量:5742 次
发布时间:2019-06-18

本文共 2062 字,大约阅读时间需要 6 分钟。

     

         这一篇我们聊聊wpf中的画刷,在wpf中如果想玩各种花哨,那么如何使用画刷则是我们的基本功,首先看一下类图

从图中可以看出,wpf有5种画刷和1种自定义画刷,都是继承自基类Brush,我们看看基类中有哪些好玩的东西。

这里有3个比较感兴趣的属性,分别属于”透明度“和”图像转换“,好,下面我们一一解说。

 

一:SolidColorBrush(实心画刷)

    实心画刷是我们用的最多的,也是最简单的一个,其实也就是填充色的意思,一个很简单的例子:

其实这里的Background=Red使用的就是SolidColorBrush,xaml进行解析时,发现Background是Brush类型,刚才我也说了

Brush具有图形转换的能力,最后xaml就会通过Transform把”Red"字符串解析成SolidColorBrush,更直观一点的话,我们可以

用C#代码来描述。

public partial class MainWindow : Window    {        public MainWindow()        {            InitializeComponent();            button1.Background = new SolidColorBrush(Colors.Red);        }    }

 

二:GradientBrush(梯度画刷)

如果我们使用过ps或者freehand,我们肯定知道在填充色方面有一个叫做“渐变色”的概念,我们使用的最多的渐变色要么是“线性”的,

要么是“圆形”的,刚好这里对应wpf中的“LinearGradientBrush”和“RadialGradientBrush”。

 

1: LinearGradientBrush(线性梯度画刷)

     线性画刷也是比较简单的,一般情况下我们只要设定一个“StartPoint”和“EndPoint”即可。

这里要注意的就是,我设定的坐标是(0,0),(0,1),我们知道两点一条直线,这条直线与X轴平行,我们可以看到颜色的分布是垂直于Y轴的,

如果说我们把坐标改为(0,0)(1,1),那么颜色分割线还是与(0,0),(1,1)这条斜线垂直吗?最后发现,严格垂直。

 

2:RadialgradientBrush(圆形梯度画刷)

    在ps中我们玩”圆形渐变“的时候,只需要设定圆心坐标和X坐标和Y坐标的值就可以画一个圆形渐变,在wpf中同样需要这三个元素,

分别对应设Center,RadiusX,RadiusY,当然在wpf中还存在一个“梯度原点“:GradientOrigin。

三:ImageBrush(图像画刷)

      这种画刷也是很有意思的,有时我们在炫时需要用图片做装饰,那么此时ImageBrush就可以祝你一臂之力。

 

四:VisualBrush(控件画刷)

     这种画刷是作用在控件级别上的,也就是说任何控件都可以作为画刷,很神奇的说。

唧唧复唧唧
木兰开飞机
开的什么机
波音747

五:DrawingBrush(自定义画刷)

     最灵活,最复杂的也就是这种自定义画刷,毕竟wpf不能给我们满足所有的要求,就必须留一道口子给我们程序员自定义实现。

转载地址:http://ftszx.baihongyu.com/

你可能感兴趣的文章
HybridDB实例新购指南
查看>>
小程序,会是下一个创业风口吗
查看>>
C语言及程序设计提高例程-35 使用指针操作二维数组
查看>>
华大基因BGI Online的云计算实践
查看>>
深入理解自定义Annotation,实现ButterKnif小原理
查看>>
vim的快捷键大全
查看>>
doT js模板入门
查看>>
iOS开发中的零碎知识点笔记 韩俊强的博客
查看>>
排序高级之交换排序_冒泡排序
查看>>
Linux文件编辑命令详细整理
查看>>
C#多线程编程
查看>>
linux整理错误集合
查看>>
Cocos2d-x3.2 Ease加速度
查看>>
力求颜值与干货齐高,出品人深度解读三大专场
查看>>
各种排序(数据结构复习之内部排序算法总结)
查看>>
[EntLib]关于SR.Strings的使用办法[加了下载地址]
查看>>
RHCE学习<2>无人值守安装Linux系统(FTP+TFTP+DHCP+Kickstart+PXE)
查看>>
中小型网站架构分析及优化
查看>>
php构造json数组与对象
查看>>
CentOS6.5安装docker环境
查看>>