布局系统
  在WPF中,许多绘图任务通过使用变换(transform)可以变得更加简单——变换是通过不加通告地切换形状或元素使用的坐标系统来改变形状或元素绘制方式的对象。在WPF中,变换的一些类大多继承自System.Windows.Media.Trandform。下面是这些类的列表:
  • TranslateTransform:将坐标系统移动一定的距离。
  • RolateTransform:旋转坐标系统。
  • ScaleTransform:放大或最小坐标系统。
  • SkewTransform:通过倾斜一定的角度扭曲坐标系统。
  • MatrixTransform:使用提供的矩阵的乘积修改坐标系统。
  • TransfromGroup:组合多个变换。
变换形状
  为了变换形状,将RenderTransform属性指定为希望使用的变换对象,根据使用的变换对象,需要填充不同的属性以配置变换对象,也就是我们上面列举的一些类。 列如:
 <Button Content="I AM Rotated 35" Width="">
<Button.RenderTransform>
<RotateTransform Angle=""></RotateTransform>
</Button.RenderTransform>
</Button>

  这里我们将按钮旋转了35度。但是RenderTransform不是在WPF积累中定义的唯一与变换相关的属性。FrameworkElement类还定义了一个LayoutTransform属性。LayoutTransform属性以相同的方式变换元素,但它是在布局之前执行工作,开销比RenderTransform要大,那么我们看一下两者的区别:

 <Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<StackPanel>
<Button Content="I AM Rotated 35" Width="100">
<Button.RenderTransform>
<RotateTransform Angle="35"></RotateTransform>
</Button.RenderTransform>
</Button>
<Button>I am not</Button>
</StackPanel> <StackPanel Grid.Row="1">
<Button Content="I AM Rotated 35" Width="100">
<Button.LayoutTransform>
<RotateTransform Angle="35"></RotateTransform>
</Button.LayoutTransform>
</Button>
<Button>I am not</Button>
</StackPanel>
</Grid>

  该窗口包含两个StackPanel,分别都有两个按钮,一个使用了RenderTransform属性,另一个使用LayoutTransform,第一个StackPanel对两个按钮进行布局时,第一个按钮正常定位,并且在即将呈现之前旋转改按钮。因此旋转过的按钮被重叠在下面。而第二个StackPanel容器中,第一个按钮在呈现之后才进行旋转,也就是LayoutTransform在布局之前执行其工作。看一下效果:

可以看出WPF在对图形渲染方面的支持。

【WPF】RenderTransform和LayoutTransform的更多相关文章

  1. WPF——RenderTransform特效

    WPF: RenderTransform特效 WPF中的变形(RenderTransform)类是为了达到直接去改变某个Silverlight对象的形状(比如缩放.旋转一个元素)的目的而设计的,Ren ...

  2. 日期格式,Popup的使用方法,RenderTransform与LayoutTransform的区别

    1.画个笑脸给大家娱乐一下: <Canvas Width="200" Height="180" VerticalAlignment="Cente ...

  3. WPF: RenderTransform特效

    WPF中的变形(RenderTransform)类是为了达到直接去改变某个Silverlight对象的形状(比如缩放.旋转一个元素)的目的而设计的,RenderTransform包含的变形属性成员就是 ...

  4. WPF RenderTransform的使用

    呈现变形的元素并没有改变位置,只是呈现在不同的位置而已,所以动画要用呈现变形 好处:为了效率,如果改变位置的话,需要重新测量,布局 <Window x:Class="wpf180709 ...

  5. WPF基础到企业应用系列6——布局全接触

    本文转自:http://knightswarrior.blog.51cto.com/1792698/365351 一. 摘要 首先很高兴这个系列能得到大家的关注和支持,这段时间一直在研究Windows ...

  6. WPF/Silverlight Layout 系统概述——Arrange(转)

    Arrange过程概述 普通基类属性对Arrange过程的影响 我们知道Measure过程是在确定DesiredSize的大小,以便Arrange过程参考这个DesiredSize,确定给MyPane ...

  7. WPF学习05:2D绘图 使用Transform进行控件变形

    在WPF学习04:2D绘图 使用Shape绘基本图形中,我们了解了如何绘制基本的图形. 这一次,我们进一步,研究如何将图形变形. 例子 一个三角形,经Transform形成组合图形: XAML代码: ...

  8. 二维图形的矩阵变换(三)——在WPF中的应用矩阵变换

    原文:二维图形的矩阵变换(三)--在WPF中的应用矩阵变换 UIElement和RenderTransform 首先,我们来看看什么样的对象可以进行变换.在WPF中,用于呈现给用户的对象的基类为Vis ...

  9. WPF笔记(2.8 常用的布局属性)——Layout

    原文:WPF笔记(2.8 常用的布局属性)--Layout 这一节老没意思,啰里啰唆的尽是些HTML的属性,挑几个好玩的List出来,备忘:Padding与Margin的区别:Margin指控件边界与 ...

随机推荐

  1. js 时间戳 转化

    new Date((1524142795*1000)).toJSON().slice(11,16)

  2. 「Python」5个开源项目

    1-OpenAI universe Universe是一个能在世界上所有的游戏.网站和其他应用中,衡量和训练AI通用智能的软件平台. Universe,AI代理通过称为虚拟网络计算或VNC发送模拟的鼠 ...

  3. Bootstrap 按钮组

    连在一起的按钮:.btn-group <div class="btn-group" role="group"> <button class=& ...

  4. openstack身份认证与API请求流程

    一.概况 1. 请求认证token时,需发送的认证信息包括: 2. 如果认证成功,会获得认证token 3. 在发送的API请求中将认证token填入X-Auth-Token字段.可以一直使用这个认证 ...

  5. Oracle用imp导入dmp文件记录一下

    ---------------------------------------------------------------------------------------------------- ...

  6. Java enum的用法详解 (转)

    用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. p ...

  7. zkw费用流 学习笔记

    分析 记\(D_i\)为从\(S\)出发到\(i\)的最短路 最短路算法保证, 算法结束时 对于任意存在弧\((i,j)\)满足\(D_i + c_{ij}\ge D_j\) ① 且对于每个 \(j\ ...

  8. 洛谷P1124 文件压缩

    https://www.luogu.org/problem/show?pid=1124 题目背景 提高文件的压缩率一直是人们追求的目标.近几年有人提出了这样一种算法,它虽然只是单纯地对文件进行重排,本 ...

  9. 前端开发必知必会:CSS Position 全解析

    此文根据Steven Bradley的<How Well Do You Understand CSS Positioning?>所译,整个译文带有我自己的理解与思想,如果译得不好或不对之处 ...

  10. 【leetcode 简单】第二题 反转整数

    给定一个 32 位有符号整数,将整数中的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假 ...