What is Windows Presentation Foundation (WPF)
WPF is the new programming model for building the presentation layer of your applications. It enables you to build user experiences that incorporate application UI, documents, and media content including 2D and 3D graphics, vector-based graphics, animation, speech, audio, video, and more.
The Windows Presentation Foundation graphics system uses device-independent units to enable resolution and device independence. Each device independent pixel automatically scales with the system's DPI setting.
The Windows Presentation Foundation graphics system is designed to take advantage of graphics hardware to minimize CPU utilization.
In order to deliver visually stunning user experiences, Microsoft has created XAML.
XAML is Extensible Application Markup Language. It provides an XML-based way to specify declaratively a hierarchy of objects with properties and logic. XAML enable the collaboration between developers and designers.
<button width="100"> OK
XAML is the format which integrates the development process and is the way for both developers and designers to access the functionalities of WPF. As you can see we have no “middle man” anymore. XAML is generated by the designer, XAML is consumed by the developer. Furthermore, the flow is now two-way meaning that the development process can also start from the developer side who creates XAML and then delivers this XAML to the designer which can take it and style it or completely redesign its appearance.
- On the Developer side we have Visual Studio.
- On the designer side we have a new suite of tools called Microsoft Expression
Benefits of Windows Presentation Foundation (WPF)
- Deliver Innovative User Interfaces
- Increase Developer-Designer Productivity; Flexible Application Deployment
- Leveraging Existing Code Base and Skills Set
- Device Independent Graphics Rendering
- Hardware Acceleration
- With XAML Designers and Developers can streamline their collaboration, thus productivity increases as designer’s design and developers add business logic.