Appendix D. WPF Base Types

WPF defines a large number of types, forming an extensive class hierarchy. This appendix describes the roles of the most important types. It does not provide a detailed description of each type—the MSDN documentation already does that. Instead, this is a high-level guide offering a broad view of how the various types fit together. Figure D-1 shows the inheritance relationships among the types described in this appendix.

WPF core types inheritance diagram
Figure D-1. WPF core types inheritance diagram



DispatcherObject is the base class of any type associated with a Dispatcher. The dispatcher mechanism is WPF’s message processing system. It underpins critical services including input handling, and certain aspects of layout and data binding. It is also at the heart of the WPF threading model. Threading and the dispatcher system are described in Appendix C.

All of the base types examined in this appendix derive from DispatcherObject, reflecting the dispatcher’s central role. Although DispatcherObject is the most common base class in WPF, few classes derive from it directly. Most derive indirectly via DependencyObject.



Classes derive from DependencyObject to employ WPF’s dependency property (DP) system. The majority of WPF element ...

Get Programming WPF, 2nd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.