关于TranslateTransform和RenderTransformOrigin

时间:2010-05-30 16:02:50

标签: c# .net animation silverlight visual-studio-2008

我在Silverlight应用程序中使用Silverlight 3.0 + .Net 3.5 + VSTS 2008 + C#。

我想学习TranslateTransform和RenderTransformOrigin,有人能推荐我一些教程吗?我是这个地区的新手。我没有找到任何从MSDN学习新手的好东西(如果有一些好东西,请纠正我)。 : - )

BTW:我对协调转换矩阵很头疼,如果教程可以涵盖这个主题,那就太棒了。

编辑:这是我困惑的代码。

    <Grid Margin="-1,0,100,0" x:Name="controlsContainer" Height="35" RenderTransformOrigin="0.5,0.5" VerticalAlignment="Bottom">
        <Grid.RenderTransform>
            <TransformGroup>
                <ScaleTransform/>
                <SkewTransform/>
                <RotateTransform/>
                <TranslateTransform Y="0"/>
            </TransformGroup>
        </Grid.RenderTransform>
        <Rectangle Margin="0,0,0,0" Height="35" VerticalAlignment="Top" Fill="#97000000" Stroke="#00000000" RenderTransformOrigin="0.5,0.5"/>
        <VideoPlayer:mediaControl Height="35" Margin="1,0,0,0" HorizontalAlignment="Stretch" VerticalAlignment="Top" x:Name="mediaControls" Visibility="Visible"/>
    </Grid>

2 个答案:

答案 0 :(得分:7)

首先,翻译不使用来源,因此RenderTransformOrigin不适用于TranslateTransform

要了解变换,为什么不试试呢?在网格中放置两次形状,让顶部的形状透明。然后转换顶部shap并查看效果。在这里,我围绕矩形的中心旋转了一个45度的矩形。

<Grid Background="White">
  <Rectangle Width="50" Height="50" Fill="Black"/>
  <Rectangle Width="50" Height="50" Fill="Red" Opacity="0.5"
      RenderTransformOrigin="0.5, 0.5">
    <Rectangle.RenderTransform>
      <RotateTransform Angle="45"/>
    </Rectangle.RenderTransform>
  </Rectangle>
</Grid>

RotateTransform

答案 1 :(得分:4)

翻译MSDN专门称为移动。请参阅部分以了解Transformations and Coordinate Systems

  

按指定的X和Y金额移动(翻译)元素。

alt text http://i.msdn.microsoft.com/dynimg/IC212086.png