Windows Presentation Foundation

Windows Presentation Foundation

Introduction 

This article provides an overview of the Windows Presentation Foundation (WPF) architecture. WPF is a next-generation UI framework to create applications with a rich user experience. It is part of the .NET Framework 3.0 and higher.


WPF has a rich and extensible architecture for designing rich UI applications.


Your WPF applications need to have a planned architecture for the elements that you will use in your application.


To learn more about the Windows Presentation Foundation(WPF), we must have a clear undersanding of the WPF architecture. So let's get an overview of the WPF architecture.


Overview of Windows Presentation Foundation

The architecture of WPF is actually a multilayered architecture. It has mainly three layers, the WPF Managed Layer, the WPF Unmanaged Layer and the Core operating system element, basically these layers are a set of assemblies that rovide the entire framework.

Managed Layer


The Presentation Framework, Presentation Core and Window Base are the three major components of the Managed Layer. These are the major code portions of WPF and plays a vital role in an overview of Windows Presentation Foundation. The public API exposed is only via this layer. The Major portion of the WPF is in managed code.

  • PresentationFramework.dll: This section contains high-level features like application windows, panels, styles controls, layouts, content and so on that helps us to build our application. It also implements the end-user presentation features including data binding, time-dependencies, animations and many more.

  • PresentationCore.dll: This is a low-level API exposed by WPF providing features for 2D, 3D, geometry and so on. The Presentation Core provides a managed wrapper for MIL and implements the core services for WPF such as UI Element and visual . The Visual System creates visual tree that contains applications Visual Elements and rendering instructions.

  • WindowsBase.dll: It holds the more basic elements that are capable to be reused outside the WPF environment like Dispatcher objects and Dependency objects.

UnManaged Layer

  • milCore.dll: The composition engine that renders the WPF application is a native component. It is called the Media Integration Layer (MIL) and resides in milCore.dll. The purpose of the milCore is to interface directly with DirectX and provide basic support for 2D and 3D surface. This section is unmanaged code because it acts as a bridge between WPF managed and the DirectX / User32 unmanaged API.

  • WindowsCodecs.dll: WindowsCodecs is another low-level API for imaging support in WPF applications like image processing, image displaying and scaling and so on. It consists of a number of codecs that encode/decode images into vector graphics that would be rendered into a WPF screen.

Core operating System Layer (Kernel)


This layer has OS core components like User32, GDI, Device Drivers, Graphic cards and so on. These components are used by the application to access low-level APIs.

  • DirectX: DirectX is the low-level API through which WPF renders all graphics. DirectX talks with drivers and renders the content.

  • User32: User32 actually manages memory and process separation. It is the primary core API that every application uses. User32 decides which element will be placed where on the screen.

  • GDI: GDI stands for Graphic Device Interface. GDI provides an expanded set of graphics primitives and a number of improvements in rendering quality.

  • CLR: WPF leverages the full .NET Framework and executes on the Common Language Runtime (CLR).

  • Device Drivers: Device Drivers are specific to the operating system. Device Drivers are used by the applications to access low-level APIs.


要查看或添加评论,请登录

Ankita Sharda的更多文章

  • C# Developer

    C# Developer

    1. Advantages of C# over Java I have found some interesting advantages of C# over Java and for that I have also won the…

  • Oracle

    Oracle

    Oracle SQL Developer is the Oracle Database IDE A free graphical user interface, Oracle SQL Developer allows database…

  • human resource management (HRM)

    human resource management (HRM)

    Human resource management (HRM) is the process of employing people, training them, compensating them, developing…

  • What Are PHP Developers?

    What Are PHP Developers?

    PHP developers develop programs, applications, and web sites using the dynamic scripting language PHP. PHP is known for…

  • What is React?

    What is React?

    React.js is an open-source JavaScript library that is used for building user interfaces specifically for single-page…

  • What is SAP?

    What is SAP?

    SAP stands for Systems Applications and Products in Data Processing. SAP, by definition, is also the name of the ERP…

  • C# developers

    C# developers

    C# C# is a simple & powerful object-oriented programming language developed by Microsoft. C# can be used to create…

  • What does a C++ Developer do?

    What does a C++ Developer do?

    C++ is one of the most popular programming languages in the world. It is widely used across the globe in a variety of…

  • PeopleSoft

    PeopleSoft

    Top products PeopleSoft Selective Adoption 9.2 allows users to decide which updates they want and when they want them…

  • What is Manpower Planning?

    What is Manpower Planning?

    What is Manpower Planning – Introduction Though the organisation of men for managing a purpose is an age-old thing, the…

社区洞察

其他会员也浏览了