WPF中ImageBrush常用方式介绍

WPF的ImageBrush是一个比较常见也比较复杂的笔刷,它继承自图块笔刷(TileBrush)。使用图块画笔绘制区域涉及以下三个组成部分:内容、基本图块和输出区域。基本输出过程如下图所示:

WPF中ImageBrush常用方式介绍_第1张图片

其中,图块部分有Viewbox控制,输出区域有Viewport控制,它们默认情况下都是一个(0,0,1,1)的矩形,通过相对位置控制图象的输出。可以组合使用,下表就是一些简单的示例:

WPF中ImageBrush常用方式介绍_第2张图片

Viewport="0,0,0.5,0.5"

WPF中ImageBrush常用方式介绍_第3张图片

Viewbox="0,0,0.5,0.5"

WPF中ImageBrush常用方式介绍_第4张图片

Viewport="0,0,0.5,0.5" Viewbox="0,0,0.5,0.5"

默认情况下,Viewport和Viewbox都是使用的相对范围,默认是(0,0,1,1)。如果要设置绝对范围,可以设置ViewboxUnits="Absolute"ViewportUnits="Absolute"

平铺笔刷

有时我们需要像墙纸那样讲一个图片重复绘制,如下图所示

WPF中ImageBrush常用方式介绍_第5张图片

简单的方法是

  • 设置Viewport,使得原图只投影到一部分输出区域(投影到全部输出区域看不到平铺效果)
  • 设置TileMode为Tile

WPF中ImageBrush常用方式介绍_第6张图片

Viewport="0,0,0.5,0.5" Viewbox="0,0,0.5,0.5" TileMode="Tile"

WPF中ImageBrush常用方式介绍_第7张图片

TileMode="FlipX"

WPF中ImageBrush常用方式介绍_第8张图片

TileMode="FlipY"

WPF中ImageBrush常用方式介绍_第9张图片

TileMode="FlipXY"

WPF中ImageBrush常用方式介绍_第10张图片

另外,还有一些比较常见的属性:AlignmentXAlignmentYStretch。这里就不一一介绍了,具体可参看MSDN文档:

https://msdn.microsoft.com/zh-cn/library/aa970682(v=vs.110).aspx

到此这篇关于WPF中ImageBrush常用方式的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(WPF中ImageBrush常用方式介绍)