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

来源:互联网 发布:手机网络信号差 编辑:程序博客网 时间:2024/05/18 02:50

一、变换形状概述

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

②在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>
三、效果演示

0 0