Skip to Main Content
Programming WPF, 2nd Edition
book

Programming WPF, 2nd Edition

by Chris Sells, Ian Griffiths
August 2007
Intermediate to advanced content levelIntermediate to advanced
864 pages
25h 52m
English
O'Reilly Media, Inc.
Content preview from Programming WPF, 2nd Edition

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 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Programming C#, 4th Edition

Programming C#, 4th Edition

Jesse Liberty
Programming C# 10

Programming C# 10

Ian Griffiths

Publisher Resources

ISBN: 9780596510374Supplemental ContentErrata Page