零基础学通Silverlight4(4):变换..
时间:2010-10-12 来源:wanxl
对象的形状的方法,使用变换为图形对象提供旋转、缩放、扭曲和移动的特效,可以改变元素的尺寸和位置,达到奇异的效果。
用于将图形对象旋转一个指定的角度,在平面内控制图形旋转,需要两个参数,一个是旋转的中心,另一个旋转的角度,因此具有如下3:旋转的水平中心点,默认值为0
◎ CenterY:
默认点(CenterX表示的是左上角。
4.2缩放变换
缩小倍数和缩放中心位置,主要参数如下:
◎ ScaleX:增加图形对象的高度,默认值为1。
◎ CenterY如:
<TextBlock TextWrapping="Wrap" Width="83" Height="35.5" FontSize="25" Canvas.Top="53.75" Canvas.Left="109" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Left" Margin="140,165,0,0" VerticalAlignment="Top" d:LayoutOverrides="Width">
<TextBlock.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="3" ScaleY="1"/>
</TransformGroup>
</TextBlock.RenderTransform>呈现的结果,如图4.2-1操作是选择从菜单“对象”中的“翻转”。
<Image Margin="63,50,0,218" Source="flower1.jpg" Stretch="Fill" HorizontalAlignment="Left" Width="152" RenderTransformOrigin="0.5,0.5">
</Image>
<Image Margin="239,114,249,154" Source="flower1.jpg" Stretch="Fill" RenderTransformOrigin="0.5,0.5">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="-1"/>
<SkewTransform AngleX="0" AngleY="0"/>
<RotateTransform Angle="0"/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
图4.2-2
4.3扭曲变换
个属性
◎ AngleX:垂直扭曲值,默认值为0。
◎ CenterY如:
<Image Margin="217.197,124.188,272.484,188" Source="house2.jpg" Stretch="Fill" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" d:LayoutRounding="Auto">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform AngleX="40"/>
<RotateTransform />
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
<Image Margin="20,36,0,0" Source="house2.jpg" Stretch="Fill" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Left" Width="155" Height="173" VerticalAlignment="Top"/>
移动变换TranslateTransform。
◎ Y如:
<Rectangle Width="181" Height="107" Fill="#FFFFFFFF" Stroke="#FF000000" RenderTransformOrigin="0.5,0.5">
<Rectangle.RenderTransform>
<TransformGroup>
<TranslateTransform X="50" Y="90"/>
</TransformGroup>
</Rectangle.RenderTransform>
</Rectangle>
就是把多个变换组合起来,比如移动一个元素的同时对它作缩放,如:
<Grid x:Name="LayoutRoot" Background="White">
<Rectangle HorizontalAlignment="Left" Height="106" Margin="38,36,0,0" Stroke="#FFE02727" VerticalAlignment="Top" Width="201"/>
<Rectangle Margin="260,157,179,217" Stroke="#FFE02727">
<Rectangle.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1.5" ScaleY="1"/>
<SkewTransform AngleX="20" AngleY="0"/>
<RotateTransform Angle="30"/>
<TranslateTransform X="10" Y="0"/>
</TransformGroup>
</Rectangle.RenderTransform>
</Rectangle>
</Grid>
复合变换CompositeTransform代码,如上述组合变换的等效XAML是一个自定义的变形对象,图形的旋转、绽放、扭曲、移动等变换,都通过矩阵变换来实现,如直接使用矩阵变换,还可以提高运行速度。
的矩阵组成,如表9-1,默认值:1.0
M12,默认值:1.0
0.0
OffsetX如将第二行第二列中的值更改为5轴移动500轴移动500示范使用矩阵变换创建立方体
运行后效果,由三个矩形变形组成的一个立方体。
左面的矩阵变形-->
<Rectangle.RenderTransform>
<MatrixTransform>
<MatrixTransform.Matrix>
<Matrix OffsetX="60" OffsetY="100" M12="-0.6" />
</MatrixTransform.Matrix>
</MatrixTransform>
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Height="172" Width="169" StrokeThickness="5" Canvas.Left="230" Canvas.Top="15" UseLayoutRounding="False" d:LayoutRounding="Auto" >
<Rectangle.Stroke>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Black" Offset="0"/>
<GradientStop Color="White" Offset="1"/>
</LinearGradientBrush>
</Rectangle.Stroke>
<Rectangle.Fill>
<LinearGradientBrush EndPoint="0.185,1.171" StartPoint="0.815,-0.171">
<GradientStop Color="Black" Offset="0"/>
<GradientStop Color="#FFACC7EF" Offset="1"/>
</LinearGradientBrush>
</Rectangle.Fill>
<!--
相关阅读 更多 +