wpfWPF Architecture

DispatcherObject

Derives from

Object

Key members

public Dispatcher Dispatcher { get; }

Summary

Most objects in WPF derive from DispatcherObject, which provides the basic constructs for dealing with concurrency and threading. Such objects are associated with a Dispatcher.

Only the thread that the Dispatcher was created on may access the DispatcherObject directly. To access a DispatcherObject from a thread other than the thread the DispatcherObject was created on, a call to Invoke or BeginInvoke on the Dispatcher the object is associated with is required.

DependencyObject

Derives from

DispatcherObject

Key members

public object GetValue(DependencyProperty dp);
public void   SetValue(DependencyProperty dp, object value);

Summary

Classes derived from DependencyObject participate in the dependency property system, which includes registering dependency properties and providing identification and information about such properties. Since dependency properties are the cornerstone of WPF development, all WPF controls ultimately derive from DependencyObject.