Declarative UI
Use XAML to define the UI declaratively. XAML is similar to HTML but more expressive and robust.
Layout Managment
WPF provides various layout options for arranging and resizing windows and controls. Layout controls contain child controls arranged in a particular order. Layout controls include:
- Grid: Table/grid-based layout
- Canvas: Fixed/absoute layout
- StackPanel: Simple left to right or top to bottom arrangement
- DockPanel: Similar to DockPanel, but the contained controls can be docked, left, right, top, bottom, or fill
- WrapPanel: Similar to DockPanel but the contained controls may wrap
Vector Graphics
WPF supports vector graphics. WPF applications automatically scale for various resolutions.
Control Templates
Redefine the look of a control. For example, by defining a Control Template, the look of all edit boxes used in the application can be modified.
Data Templates
Define how data (class object) is rendered by a control. For example, if we have FileDirectoryEntry class object that has file name and size. A data template may define how this data is rendered. If FileDirectoryEntry object is added to a listbox, the data template renders the corresponding listbox item.
Data Binding
Data (a class object) is set as the DataSource for a UI element. By using Binding Expressions, the data values may be assigned to various properties of the UI element.
Command and Key Binding
A command or key combination can be bound to a UI element (button, for example).
Styles
Similar to CSS, styles can be applied to various UI elements.
Control Template and Style Triggers
Change appearance or state of a control based on some event such as click or mouse over.
Animation
Controls can be animated. Animations can be kicked off via Control or Style triggers.
3D modeling and animation
WPF supports basic 3D modeling and animation.