WPF中Brush类型
画刷Brush使用
画刷类
- SolidColorBrush
- LinearGradientBrush
- RadialGradientBrush
- ImageBrush
- VisualBrush
- DrawingBrush
SolidColorBrush
SolidColorBrush是最常用到的画刷类,它的构造最简单,一种纯色画刷。
通常可通过Brushes来获取系统预先定义好的颜色画刷,也可以自己创建。例如:
Brush red = Brushes.Red;//红色画刷
Brush green = Brushes.Green;//绿色画刷
Brush blue = Brushes.Blue;//蓝色画刷
SolidColorBrush red = new SolidColorBrush(Colors.Red);//红色画刷
在xaml中使用纯色画刷也很方便:
<Grid Background="Blue">
</Grid>
<Grid Background="#FF952C7D">
<Grid/>
LinearGradientBrush
LinearGradientBrush是线性渐变画刷。
<Grid.Background>
<LinearGradientBrush MappingMode="RelativeToBoundingBox" ColorInterpolationMode="ScRgbLinearInterpolation" StartPoint="0,0" EndPoint="1,1">
<GradientStopCollection>
<GradientStop Color="Red" Offset="0.2"/>
<GradientStop Color="Blue" Offset="0.5"/>
<GradientStop Color="Green" Offset="0.8"/>
</GradientStopCollection>
</LinearGradientBrush>
</Grid.Background>
其中GradientStop用于设置渐变颜色
RadialGradientBrush
RadialGradientBrush是径向渐变
<Grid.Background>
<RadialGradientBrush RadiusX="1" RadiusY="1" Center="0.1,0.2" GradientOrigin="0.2,0.2">
<GradientStopCollection>
<GradientStop Color="Red" Offset="0.2"/>
<GradientStop Color="Blue" Offset="0.6"/>
<GradientStop Color="Green" Offset="0.8"/>
</GradientStopCollection>
</RadialGradientBrush>
</Grid.Background>
ImageBrush
ImageBrush与剩余两种都继承于TileBrush类。ImageBrush是图片画刷,可以设置图片作为画刷来使用。
<Grid.Background>
<ImageBrush Stretch="Fill" Viewport="0,0,0.1,0.1" ViewportUnits="RelativeToBoundingBox" TileMode="Tile" ImageSource="/Images/ico_head.png"/>
</Grid.Background>
其中Stretch属性与Image中的属性效果一样,表示该图片在一定区域内的表现形式。
TileMode表示填充的方式。
TileMode="Tile"

TileMode="FlipX"

TileMode="FlipXY"

TileModel="FlipY"

可以发现设置不同的TileMode的值,所表现出来的效果是有很大不同的。
Viewport属性用于设置显示区域的大小。它与ViewportUnits一块配合使用。
ViewportUnits默认是相对值。
VisualBrush
可以将一般的图形设置为背景
<Grid.Background>
<VisualBrush TileMode="Tile" Viewbox="0,0,2,2" Viewport="0,0,0.1,0.1">
<VisualBrush.Visual>
<TextBlock Text=" 水印文本 "/>
</VisualBrush.Visual>
</VisualBrush>
</Grid.Background>
DrawingBrush
DrawingBrush可以使用绘制
<Grid.Background>
<DrawingBrush Viewport="0,0,200,220" ViewportUnits="Absolute" TileMode="Tile">
<DrawingBrush.Drawing>
<DrawingGroup>
<GeometryDrawing Brush="White">
<GeometryDrawing.Geometry>
<RectangleGeometry Rect="0,0,200,220"/>
</GeometryDrawing.Geometry>
</GeometryDrawing>
<GeometryDrawing Pen="{StaticResource SolidLine}" Geometry="M0,0 L200,0 200,200 0,200z"/>
<GeometryDrawing Pen="{StaticResource DottedLine}" Geometry="M100,0 L100,200"/>
<GeometryDrawing Pen="{StaticResource DottedLine}" Geometry="M0,100 L200,100"/>
<GeometryDrawing Geometry="M0,210 L200,210">
<GeometryDrawing.Pen>
<Pen Brush="Transparent" Thickness="10"/>
</GeometryDrawing.Pen>
</GeometryDrawing>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
</Grid.Background>
WPF中Brush类型的更多相关文章
- wpf中xaml的类型转换器与标记扩展
原文:wpf中xaml的类型转换器与标记扩展 这篇来讲wpf控件属性的类型转换器 类型转换器 类型转换器在asp.net控件中已经有使用过了,由于wpf的界面是可以由xaml组成的,所以标签的便利也需 ...
- 简述WPF中的画刷(Brush)
原文:简述WPF中的画刷(Brush) -------------------------------------------------------------------------------- ...
- WPF中实现验证码功能
其实和winform中的实现差不多,只是由于WPF中控件使用的库与winform中的有区别,大体上还是差不多的,直接看代码: 产生验证码的类:ValidCode.cs public class Val ...
- WPF中的Drawing
以前在用WinForm的时候,可以通过GDI+接口在窗体上动态绘制自定义的图形.在WPF中有没有对应的API呢,最近项目中用到了这个,在这里总结一下. WPF中的Drawing主要提供了几类API: ...
- [No000012C]WPF(4/7)类型转换器和标记扩展[译]
介绍 之前讨论了WPF的基础架构,然后逐步开始学习布局面板,转换,介绍了不同的控件,容器,UI转换等.在这篇文章中,我将讨论每个创建XAML应用前的开发人员应该了解的关于XAML最重要的东西. 标记扩 ...
- 在WPF中创建可换肤的用户界面
原文:在WPF中创建可换肤的用户界面 在WPF中创建可换肤的用户界面. ...
- WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object)
原文 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 众所周知的,WPF 中多数对象都继承自 Dispatch ...
- WPF中的3D特性和常见的几个类
原文:WPF中的3D特性和常见的几个类 WPF 3D 常用的几个类及其关系 1. Visual 类 所有二维可视化元素的基类,为 WPF 中的呈现提供支持,其中包括命中测试.坐标转换和边界 ...
- 在WPF中添加3D特性
原文:在WPF中添加3D特性 35.4 在WPF中添加3D特性 本节介绍WPF中的3D特性,其中包含了开始使用该特性的信息. 提示: WPF中的3D特性在System.Windows.Media.M ...
随机推荐
- ubuntu18.04系统桌面很卡 换回16.04桌面
https://jingyan.baidu.com/article/37bce2bea3c07f1002f3a22a.html
- Ngrinder脚本开发各细节锦集(groovy)
Ngrinder脚本开发各细节锦集(groovy) 1.生成随机字符串(import org.apache.commons.lang.RandomStringUtils) 数字:RandomStrin ...
- legend3---lavarel多对多模型操作实例
legend3---lavarel多对多模型操作实例 一.总结 一句话总结: 在多对多模型中,增加关系表的数据 需要 弄一个和关系表一对多的模型关系 1.在lavarel关系模型中,课程和标签表是多对 ...
- axios的拦截器(Interceptors)
axios 的拦截器:interceptors 如果我们想在请求之前做点什么,用拦截器再好不过了 拦截器一般做什么? 1. 修改请求头的一些配置项 2. 给请求的过程添加一些请求的图标 3. 给请求添 ...
- 构建 JVM(HotSpot) 源码调试环境(OpenJDK8)
原本想在 Windows 下编译调试,但过程中遇到了诸多错误(老是报路径错误...),最后只好放弃. 此次记录调试的方法为 CentOS7 上编译,Windows 上使用 Clion 远程调试(也可直 ...
- DP----鬼畜的数字三角形
数字三角形 1 洛谷 P1216 数字金字塔 我们可以用 f [ i ] [ j ] 表示从(1,1)出发,到达(i,j)的最大权值和. (i , j)可以由 正上(i - 1 , j)或者 ...
- Android jni/ndk编程二:jni数据类型转换(primitive,String,array)
一.数据类型映射概述 从我们开始jni编程起,就不可能避开函数的参数与返回值的问题.java语言的数据类型和c/c++有很多不同的地方,所以我们必须考虑当在java层调用c/c++函数时,怎么正确的把 ...
- 3-mybatis-xml配置
配置文件主要在官网文档是已有详细说明. 1 properties 在上一节中已经有说明. 2 settings MyBatis中的调整设置. <settings> <!--全局地开 ...
- layui相关总结
表格操作实例1: https://sun_zoro.gitee.io/layuitableplug/testTableCheckboxDisabled?v0.1.9
- ubuntu快速联网
1:打开ubuntu 2:设置 特殊:red hat设置视频:http://www.jikexueyuan.com/course/1349_3.html?ss=1