我在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>
答案 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>
答案 1 :(得分:4)
翻译被MSDN专门称为移动。请参阅部分以了解Transformations and Coordinate Systems。
按指定的X和Y金额移动(翻译)元素。