Today, whilst preparing for the MCTS 70-511 certification exam, I put myself back in the chair.
A: Sure, all UIElement derived classes can have WPF transformations applied to them.
A: The RenderTransform and LayoutTransform properties. Eg with a button you could set Button.RenderTransform to a ScaleTransform.*
A: Erm, the transformation set on the LayoutTransform property is applied before WPF performs lay out on the element. The transformation set on the RenderTransform property is applied before WPF renders the element.
A: A LayoutTransform rotates the button first before laying it out. This could cause the button layout to use up more space, eg it might use up more vertical space. Elements laid out after the button will appear under the button and will not overlap in their layout. If applied as a RenderTransform however, all elements will be laid out first before the button is rotated. As a result the button's render might overlap other elements.
A: Both properties only accept a single transformation object.
A: One approach would be to group both transformations under a TransformGroup element. WPF takes care of applying the transformations in the right order. You could also calculate and apply a corresponding MatrixTransform which represents the composite of the scaling followed by the rotation.
A: Yes, the order in which the transformations are specified is important. The effect of composite transformations which involve a translation from the center of origin will be different depending on when the translation is applied.3