WPF is actually a set of assemblies that build up the entire framework. These assemblies can be categorized as:
- Managed Layer
- UnManaged Layer
- Core API
The managed layer has two main components – Presentation Framework and Presentation Core.
Presentation Framework provides the required functionalities that we need to build the WPF Architecture applications such as controls, data bindings, styling, shapes, media, documents, annotations, animation and more. PresentationFamework.dll is responsible for this purpose.
Presentation Core acts as a managed wrapper around MILCore and provides the public interface for MIL. Presentation Core is the home for WPF Visual System and provides classes for creating application visual tree. The Visual System creates the visual tree which contains applications Visual Elements and rendering instructions. PresentationCore.dll is responsible for this purpose.
This layer also called milcore or Media Integration Library Core. MilCore wrote in unmanaged code in order to enable tight integration with DirectX. Also, DirectX engine the underlying technology used in WPF to display all graphics, allowing for efficient hardware and software rendering. Moreover, MIL has Composition System that receives rendering instructions from Visual System and translates into data that can be understood by DirectX to render the user interface.
Core API Layer
This layer has OS core components like Kernel, User32, GDI, Device Drivers, Graphic cards etc. Moreover, These components used by the application to access low-level APIs. Also, User32 manages memory and process separation.