My Framework Property Metadata class will take care of the necessary layout invalidations.
As such, the property engine will take care of invalidating measure on the target element whenever the Width property changes.
The other layout options work pretty much the same way.
The Affects Arrange flag will cause Invalidate Arrange() to be called on the target element when the property changes.
I’d like to highlight one more feature that is available in Silverlight if you use my code snippets.
Those who watched the value coercion video might have glimpsed the following enum within the Framework Property code file: This enum provides a limited subset of the metadata options that are available in WPF.
Specifically, these are the options used with dependency properties that affect layout. If you are not familiar with these metadata options, here’s a quick rundown…
In WPF, a dependency property on a framework element can be registered with one or more metadata options.
The Affects Parent Measure and Affects Parent Arrange flags will cause Invalidate Measure() and Invalidate Arrange() to be called, respectively, on the target element’s parent.
It’s All About Portability In Silverlight, there is no native mechanism for registering a property to affect measure or arrange.
As such, you typically register a Property Changed Callback on the property and then explicitly call Invalidate Measure() and/or Invalidate Arrange() within your callback.
If you use my snippets, you can follow the exact same approach in Silverlight that you would use in WPF for properties that affect layout.