Windows Presentation Foundation is a next level GUI framework as compared to WinForms, which provides impressive user interfaces in windows based applications. Earlier it was known as Avalon and was first released as a part of .NET 3.0 framework. User interfaces in WPF is implemented through XAML which is XML based language.
WPF is a platform to build Graphical User Interfaces for the windows platform.
WPF implements clear separation of appearance and behavior. The appearance is defined using XAML (Extensible Application Markup Language) and the corresponding behavior is defined using one of the programming language supported in .NET framework.
Graphics technology used in WPF is DirectX unlike it's predecessor WinForms which used GDI/GDI+. DirectX is better than GDI/GDI+ in the sense that it can render more complex UI stuffs like textures or gradients directly using the video card.
WPF uses vector based rendering technology which leads to a behavior called Graphical Independency. WPF applications does not use pixel as a measurement to render UI on screen but DIP (Device Independent Pixels) which deals directly with the physical measurement and is resolution independent. It allows our application to display smoothly on any resolution with a sharp look and feel.
WPF allows to easily define the style for the UI components. We can define the scope of the styles at the control level, window level or the application level.
WPF allows us to write a wide range of both stand-alone and browser hosted applications.
With XAML as the language to create interface it became easier to create more complex and custom made controls using the nesting of available controls.
WPF has a built in support for animation. As WPF internally uses DirectX which is a framework for animation, so automatically WPF also supports animation using inbuilt classes.
There are built-in data services in WPF that enable developers to bind and manipulate data within applications. There are four types of binding:
9.1- One time: in which client ignore the updates from the server
9.2- One way: in which client has only read-only access to data
9.3- Two way: in which client can read as well as modify data on server
9.4- One way to source: in which client has write-only access to server