I have answered a few forum posts about the WPF transforms recently, mostly regarding confusion between RenderTransform and LayoutTransform. This brief blog post illustrates the difference between the two. The WPF layout system comprises, of two steps, followed by the rendering of the user interface (UI):
- Measure
- Arrange
- Render
In the Measure step, the DesiredSize of each element is computed; in the Arrange step the position of child elements within their parents is determined; finally, in the Render step, the result user interface is rendered to the screen. Layout transforms and Render transforms are computed at different stages of the layout/render process:
- LayoutTransform
- Measure
- Arrange
- RenderTransform
- Render
As a result, any transformations associated with an elements LayoutTransform property will have an impact on the subsequent Measure and Arrange steps. Whereas a RenderTransform will not have any impact on the layout process and will only effect rendering. The difference is probably best illustrated by an example:
In the above examples, it can be seen that when a LayoutTransform is applied, neighbouring elements are re-positioned to accommodate the transformed elements, whereas with the RenderTransform they are not. One common use of WPF transforms is to rotate ListView column headings. With the above examples it should be obvious that a LayoutTransform is required to achieve this effect.
You can download the demo project, wpfrenderandlayouttransforms, changing the file extension from .doc to .zip.
Regards, Colin E.


email: ceberhardt@scottlogic.co.uk
on Google+




Hi,
your website is not clearly difference b/w layout transform,render transform.
Why do we need RenderTransform at all? Hard to me to imagine a situation when RenderTransform should chosen instead of the LayoutTransform.
Actually I use RenderTransform far more often than LayoutTransform!
RenderTransform is great for transitions, animations and general UI effects.
Thank you, it’s very helpful
[...] http://www.scottlogic.co.uk/blog/colin/2008/12/layouttransform-vs-rendertransform-whats-the-differen… [...]
[...] has both a LayoutTransform and a RenderTransform. To understand the difference, see this post. Silverlight only includes the RenderTransform, however a LayoutTransformer is part of the free [...]
Thank you thank you thank you.
Hey, thanks for this simple and yet straight forward explanation. I was trying to grasp the idea from text on MSDN but could get it until i read your explanation and the attached image. Thanks!
Thanks – glad it helped you