3
我在嵌套Silverlight控件中使用CompositeTransforms並看到意外的結果。嵌套silverlight變換的執行順序是什麼?
這裏是XAML的簡化示例:
<Grid x:Name="ContainerControl" RenderTransformOrigin="0,0">
<Grid.RenderTransform>
<CompositeTransform Rotation="{Binding Rotation}"/>
</Grid.RenderTransform>
<Rectangle Width="50" Height="50" Fill="RoyalBlue" DataContext="{Binding Child}">
<Rectangle.RenderTransform>
<CompositeTransform TranslateX="{Binding XTranslation}" TranslateY="{Binding YTranslation}"/>
</Rectangle.RenderTransform>
</Rectangle>
</Grid>
具有非常簡單的對象:
public class TestData
{
public decimal Rotation { get { return 90; } }
public TestChild Child { get { return new TestChild(); } }
}
public class TestChild
{
public decimal XTranslation { get { return 20; } }
public decimal YTranslation { get { return 30; } }
}
我假設子對象(矩形)將具有其平移變換施加和那麼父對象(網格)就會旋轉整個事物。但是,這不是我所看到的。什麼是嵌套轉換的執行順序?我怎樣才能輕鬆地強制它按我期望的方式工作?