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 ...
随机推荐
- 解决Maven打包提示:读取C:\Users\Administrator\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar时出错; invalid LOC header (bad signature)
1.打包情况 虽然提示读取jar包出错,但是还是能打包成功,在执行打的jar包时会报错,说找不到相关的类. 2.解决方案 从提示的路径可以找到对应的jar包,但为什么会读取错误呢?尝试着双击打开log ...
- Linux 竞态条件和临界区
1. 临界区和竞态条件: 临界区:访问和操作共享数据的代码段: 竞态条件:当有多个线程同时进入临界区时,执行结果取决于线程的执行顺序: 如下述代码,当多个线程同时调用func函数,对共享数据sum进行 ...
- State Threads之Co-routine的调度
1. 相关结构体 1.1 _st_epoll_data static struct _st_epolldata { _epoll_fd_data_t *fd_data; /* 调用 epoll_wai ...
- 尚学堂requireJs课程---2、模块
尚学堂requireJs课程---2.模块 一.总结 一句话总结: # 将代码以及使用放到独立的闭包中去,并且赋值给了变量,便于外部访问 # return出了函数和变量(放在一个json对象中) # ...
- 设计模式--观察者模式--python
观察者模式: 对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新. 主要解决: 当一个抽象模型有两个方面, 其中一个方面依赖于另一方面.将这二者封装在 ...
- OGG-01877 Missing explicit accessrule for server collector
OGG-01877 Missing explicit accessrule for server collector Table of Contents 1. OGG-01877 1 OGG-0187 ...
- 图片加载框架之fresco
FaceBook推出的图片处理框架主页: https://github.com/facebook/fresco中文文档:http://fresco-cn.org/docs/index.html 功能 ...
- url protocol
首先注册服务 方法1,保存为reg文件直接执行,需要按需修改路径 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\EasyPrint] ...
- CA证书申请+IIS配置HTTPS+默认访问https路径
引用别人博文内容:https://www.cnblogs.com/lichunting/p/9274422.html 一.CA证书申请 (一). 新StartSSL注册帐号 1. StartSS ...
- 物料主数据批导bapi
创建物料主数据,根据模板不同批导原材料,半成品,成品.可根据实际需求对字段进行增删. report zmmr_bapi_mm01 no standard page HEADING. type-POOL ...