布局系统
  在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. linux 版本查询

    原文 : http://www.ha97.com/2987.html 一.查看Linux内核版本命令(两种方法): 1.cat /proc/version [root@localhost ~]# ca ...

  2. mysql5.7 安装常见问题

    mysql 5.7安装要执行以下三个命令: 1.mysql install2.mysqld --initialize3.net start mysql 第一个命令可能会出现Install/Remove ...

  3. [DeeplearningAI笔记]卷积神经网络1.4-1.5Padding与卷积步长

    4.1卷积神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.4Padding 一张\(6*6\)大小的图片,使用\(3*3\)的卷积核设定步长为1,经过卷积操作后得到一个\(4*4 ...

  4. 在vue中使用animate.css

    animate.css是一款前端动画库,相似的有velocity-animate 用法: 首先 npm install animate.css --save 然后在vue文件的script中引入: i ...

  5. 数学&搜索:博弈论之极大极小搜索与alpha-beta减枝

    目的是寻找最优的方案使得自己能够利益最大化. 基本思想就是假设自己(A)足够聪明,总是能选择最有利于自己的方案,而对手(B)同样足够聪明,总会选择最不利A的方案 对抗搜索就是对于先手来说,取后手中状态 ...

  6. 什么是Qt Widget?

    Qt帮助文档如此解释: The user interface contains visual elements that are called widgets in Qt. Examples of w ...

  7. Linux高级编程--02.gcc和动态库

    在Linux环境下,我们通常用gcc将C代码编译成可执行文件,如下就是一个简单的例子: 小实验:hello.c #include <stdlib.h> #include <stdio ...

  8. ③ 设计模式的艺术-03.工厂方法(Factory Method)模式

    public interface Car { void run(); } public class Audi implements Car { @Override public void run() ...

  9. Spring bean - scope详解

    Scope是定义Spring如何创建bean的实例的. 在创建bean的时候可以带上scope属性,scope有下面几种类型. Singleton 这也是Spring默认的scope,表示Spring ...

  10. WordPress友情链接插件的安装

    插件:link manager 这样就安装成功! 在外观小工具里 把右边即可 这样在前台页面上就可看见添加的友情链接了!!!