文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>零基础学通Silverlight4(4):变换..

零基础学通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>
<!--
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载