Freezable
System.Object System.Windows.Threading.DispatcherObject System.Windows.DependencyObject System.Windows.Freezable
Many types in WPF describe features of the user interface rather
than being UI elements in their own right. For example, the various
brush types described in Chapter 13 describe how a
particular UI feature should be colored; geometries describe shapes of
graphical elements. Most of these descriptive classes derive from the
common Freezable
base class. You
would not normally derive your own types from Freezable
; it is an important class in the WPF
class hierarchy because so many important types derive from it.
One of the most important characteristics of a freezable object is that you can use it in multiple places. Example D-1 contains a single description of an ellipse shape, which is shared by three UI elements.
Example D-1. Freezables and elements
<StackPanel Orientation="Horizontal"> <StackPanel.Resources> <EllipseGeometry x:Key="pathDescription" RadiusX="100" RadiusY="50" Center="100,50" /> </StackPanel.Resources> <Path Data="{StaticResource pathDescription}" Fill="Green" /> <Path Data="{StaticResource pathDescription}" Fill="Cyan" /> <Path Data="{StaticResource pathDescription}" Fill="Black" /> </StackPanel>
As you can see from Figure D-2, this example has
three distinct elements—the three ellipses correspond to the three
Path
elements. This highlights the
fact that Path
is more than just a
description of a shape. The identity of a Path
object is significant—each ...
Get Programming WPF, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.