关于TranslateTransform和RenderTransformOrigin

Geo*_*ge2 1 .net c# silverlight animation visual-studio-2008

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

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

顺便说一句:我对协调转换矩阵很头疼,如果教程可以涵盖这个主题,那就太棒了.

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

    <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>
Run Code Online (Sandbox Code Playgroud)

Mar*_*age 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>
Run Code Online (Sandbox Code Playgroud)

RotateTransform