第12章 形状、画刷和变换(1)——变换形状

一、变换形状概述

①通过变换可以实现多个功能,如移动、旋转、放大、缩小、倾斜等。

②在WPF中变换都已经定义好了对应的类,在使用变换时,仅需要将形状的RenderTransform属性指定为希望使用的变换对象即可。

③WPF中使用RenderTransformOrigin属性确定形状或元素的中心,该值是相对值。点(0,0)被指定为左上角,点(1,1)被指定为右下角。

④当设置RenderTransformOrigin属性以指定旋转点时,可使用大于1或小于0的值,这是旋转点位于形状边界之外


二、旋转实例

<Window x:Class="Drawing.RotateShape"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="RotateShape" Height="427" Width="332"
    >
  <Canvas>
    <Rectangle Width="80" Height="10" Stroke="Blue" Fill="Yellow" 
          Canvas.Left="100" Canvas.Top="100">      
    </Rectangle>

    <Rectangle Width="80" Height="10" Stroke="Blue" Fill="Yellow" 
      Canvas.Left="100" Canvas.Top="100">
      <Rectangle.RenderTransform>
        <RotateTransform Angle="25" />
      </Rectangle.RenderTransform>
    </Rectangle>

    <Rectangle Width="80" Height="10" Stroke="Blue" Fill="Yellow" 
          Canvas.Left="100" Canvas.Top="100">
      <Rectangle.RenderTransform>
        <RotateTransform Angle="50" />
      </Rectangle.RenderTransform>
    </Rectangle>

    <Rectangle Width="80" Height="10" Stroke="Blue" Fill="Yellow" 
      Canvas.Left="100" Canvas.Top="100">
      <Rectangle.RenderTransform>
        <RotateTransform Angle="75" />
      </Rectangle.RenderTransform>
    </Rectangle>

    <Rectangle Width="80" Height="10" Stroke="Blue" Fill="Yellow" 
      Canvas.Left="100" Canvas.Top="100">
      <Rectangle.RenderTransform>
        <RotateTransform Angle="100" />
      </Rectangle.RenderTransform>
    </Rectangle>



    <Rectangle Width="80" Height="10" Stroke="Blue" Fill="Yellow" 
          Canvas.Left="100" Canvas.Top="300">
    </Rectangle>

    <Rectangle Width="80" Height="10" Stroke="Blue" Fill="Yellow" 
      Canvas.Left="100" Canvas.Top="300">
      <Rectangle.RenderTransform>
        <RotateTransform Angle="25" CenterX="45" CenterY="5" />
      </Rectangle.RenderTransform>
    </Rectangle>

    <Rectangle Width="80" Height="10" Stroke="Blue" Fill="Yellow" 
      Canvas.Left="100" Canvas.Top="300">
      <Rectangle.RenderTransform>
        <RotateTransform Angle="50" CenterX="45" CenterY="5" />
      </Rectangle.RenderTransform>
    </Rectangle>
    
    <Rectangle Width="80" Height="10" Stroke="Blue" Fill="Yellow" 
      Canvas.Left="100" Canvas.Top="300">
      <Rectangle.RenderTransform>
        <RotateTransform Angle="75" CenterX="45" CenterY="5" />
      </Rectangle.RenderTransform>
    </Rectangle>
    
    <Rectangle Width="80" Height="10" Stroke="Blue" Fill="Yellow" 
      Canvas.Left="100" Canvas.Top="300">
      <Rectangle.RenderTransform>
        <RotateTransform Angle="100" CenterX="45" CenterY="5" />
      </Rectangle.RenderTransform>
    </Rectangle>
  </Canvas>


</Window>
三、效果演示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值