Firstly, read about XAML.
WPF is used to build client applications for the Windows operating system. It allows you to build rich, interactive applications that would be difficult to build by using older Windows Forms technologies.
Advantages of WPF over WinForms
WPF has a number of features that you can benefit from when developing your applications. The core advantages of WPF are explained below:
- DirectX Graphics Engine
At its core, WPF provides a resolution-independent and vector-based rendering engine that is based on the DirectX graphics engine. It enables developers to utilize the power and features in modern graphic cards without requiring them to program directly with DirectX.
- Markup and Code-Behind
WPF applications use XAML to separate the appearance and behavior of an application. The user interface is specified in XAML files and the application logic is contained in code-behind files.
- Support for Vector Graphics
WPF uses vector graphics to display images on the user interface. When defined as a vector graphic, an image is stored as lines, curves, colors, and other data that can be used to re-create the image and scale it to any size without affecting image resolution.
- Resolution Independence
WPF renders all images itself and is therefore independent from device resolution. Units in WPF are measured in device-independent units, and WPF will scale the original interface objects appropriately for users with large high-resolution screens.
- Multimedia Support
WPF provides support for audio and video and enables media to be integrated with other user interface objects. For example, WPF allows videos to be applied to other interface elements so that objects such as buttons can have videos played on them.
One of the more striking differences in WPF compared with Windows Forms development is animation support. This allows the developer to create movement on the interface by defining the start-state and end-state of an object, along with timing information and the trigger that will start the animation. The actual animation is handled by WPF.
Animations can significantly improve the user interface experience by affecting individual elements or groups of elements. For example, a single button can be animated so that it changes shape when the mouse pointer is placed over it, or all of the objects in the user interface can be animated as a group to move off the screen when a button is clicked.
- Data Binding
WPF provides powerful data binding that allows the developer to configure UI elements to consume data from other sources. This binding can be configured so that elements that are bound to data can be updated when the underlying data changes.