WPF中ImageBrush常用方式介绍

作者:天方 时间:2022-02-26 09:45:30 

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

WPF中ImageBrush常用方式介绍

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

WPF中ImageBrush常用方式介绍

Viewport="0,0,0.5,0.5"

WPF中ImageBrush常用方式介绍

Viewbox="0,0,0.5,0.5"

WPF中ImageBrush常用方式介绍

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常用方式介绍

简单的方法是

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

  • 设置TileMode为Tile

WPF中ImageBrush常用方式介绍

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

WPF中ImageBrush常用方式介绍

TileMode="FlipX"

WPF中ImageBrush常用方式介绍

TileMode="FlipY"

WPF中ImageBrush常用方式介绍

TileMode="FlipXY"

WPF中ImageBrush常用方式介绍

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

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

来源:https://www.cnblogs.com/TianFang/p/6349816.html

标签:WPF,ImageBrush,用法
0
投稿

猜你喜欢

  • Java程序图形用户界面设计之按钮与布局

    2023-07-18 07:03:21
  • Android应用程序(APK)的编译打包过程

    2021-10-29 14:37:07
  • 使用PageHelper插件实现Service层分页

    2023-03-06 00:40:39
  • 关于Android 6.0权限的动态适配详解

    2021-09-16 07:56:34
  • SpringBoot yml配置文件读取方法详解

    2022-12-13 18:04:19
  • springboot 中整合mybatis多数据源不使用JPA

    2023-03-01 08:43:02
  • 关于SpringMVC在Controller层方法的参数解析详解

    2022-10-29 01:06:10
  • 通过spring boot 设置tomcat解决 post参数限制问题

    2022-09-26 23:38:31
  • Java GUI编程实现在线聊天室

    2022-04-07 22:50:09
  • Android开发之自定义刮刮卡实现代码

    2023-07-30 14:52:57
  • 超全MyBatis动态代理详解(绝对干货)

    2023-11-14 02:28:19
  • Spring整合Quartz实现定时任务调度的方法

    2023-07-07 00:55:55
  • SpringBoot之webflux全面解析

    2022-09-27 12:07:20
  • spring基于注解配置实现事务控制操作

    2021-12-07 11:58:24
  • Android多点触控实现图片自由缩放

    2023-12-15 20:48:40
  • 用C#的params关键字实现方法形参个数可变示例

    2022-04-14 01:53:16
  • 一篇文章教你使用枚举来实现java单例模式

    2023-08-23 22:24:36
  • SpringMVC编程使用Controller接口实现控制器实例代码

    2023-02-01 02:03:36
  • 详解SpringBoot使用RedisTemplate操作Redis的5种数据类型

    2022-12-03 07:35:29
  • Jquery+Ajax+Json+存储过程实现高效分页

    2022-04-25 02:22:30
  • asp之家 软件编程 m.aspxhome.com