Expression Blend 4 – XAML generation tweaks


With Blend 4, we have made a number of significant changes to how we generate XAML, primarily with the aim of generating more compact XAML. You will find a couple of these interesting:

a) DoubleAnimation v/s DoubleAnimationUsingKeyframes
In Blend 3, rotating a Rectangle in a Storyboard would give you the following:
<Storyboard x:Name=”Storyboard1″>
    <DoubleAnimationUsingKeyFrames BeginTime=”00:00:00″ Duration=”00:00:00.0010000″ Storyboard.TargetName=”rectangle” Storyboard.TargetProperty=”(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)”>
        <EasingDoubleKeyFrame KeyTime=”00:00:00″ Value=”15.091″/>
    </DoubleAnimationUsingKeyFrames>
</Storyboard>

In Blend 4, you now get the following (Note that you will find the user experience identical between Blend 3 and Blend 4 – if you were to drop an additional key frame, we will convert the animation to the type that lets you do keyframing)
<Storyboard x:Name=”Storyboard1″>
    <DoubleAnimation BeginTime=”00:00:00″ Duration=”0:0:1.6″ To=”12.228″ Storyboard.TargetProperty=”(UIElement.RenderTransform).(CompositeTransform.Rotation)” Storyboard.TargetName=”rectangle” d:IsOptimized=”True”/>
</Storyboard>

b) TransformGroup v/s CompositeTransform
In Blend 3, rotating a Rectangle would give you the following:
<Rectangle x:Name=”rectangle” Fill=”White” Stroke=”Black”>
            <Rectangle.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform/>
                    <RotateTransform Angle=”15″/>
                    <TranslateTransform/>
                </TransformGroup>
            </Rectangle.RenderTransform>
</Rectangle>

In Blend 4, you now get the following:
<Rectangle x:Name=”rectangle” Fill=”White” Stroke=”Black”>
            <Rectangle.RenderTransform>
                <CompositeTransform Rotation=”15″/>
            </Rectangle.RenderTransform>
</Rectangle>

Are there any other areas where you find the XAML being generated by Blend is more verbose than that would you would have liked? If so, I would love to hear about them!


Comments (0)