LOGO For Immediate Assistance Call 855-211-9361


Windows Presentation Foundation (WPF)


Call for availability 855-211-9361

This six-day instructor-led course provides students with the knowledge and skills to develop Graphical User Interface (GUI) applications on Windows using the Windows Presentation Foundation managed framework. Window Presentation Foundation (WPF) is the Microsoft next generation managed framework for designing and creating user interfaces and presentation layer. It is a part of the Windows Vista Operating System, and is also available for installation and development on Windows XP SP2, Windows Server 2003 and Windows Server 2008, as part of the .NET Framework 3.0/3.5 Runtime Components.

WPF provides a consistent programming model for building applications for a full smart-client installation or loading into a web browser.WPF enables richer control, design, and development of the visual aspects of Windows programs by unifying a host of application services: user interface, 2D and 3D drawing, fixed and adaptive documents, vector graphics, raster graphics, animation, data binding, audio and video.

The course is packed with code samples, demos, exercises and labs, to facilitate understanding WPF-based UI applications design concepts, development and best practices.

Course Overview

By the end of the class students will be able to:

  • Understand the Windows Presentation Foundation framework architecture and design concepts.
  • Use WPF built-in controls from both Visual Studio and Expression Blend.
  • Read and write XAML declarative language.
  • Arrange controls using the WPF layout system.
  • Work with data in WPF based applications using Data Binding.
  • Create a rich user interface with 2D vector graphics, media, and animation.
  • Provide themes and styles to applications by restyling controls.
  • Work with WPF in a multithreaded environment.
  • Implement WPF interoperability with Win32 and Windows Forms controls.


  • Working knowledge of C# 2.0 or above
  • Basic knowledge of UI development
  • Familiarity with XML

Course Outline

    Module 1: Introduction

  • This module explains how to obtain the Windows Presentation Foundation framework as part .NET Framework 3.0 and later and what other technologies are bundled with WPF.Lessons
    • The .NET Framework 3.0
    • Introducing WPF

    Module 2: Application Level

  • This module explains how to create a WPF application from Visual Studio and how to create windows and dialogs.Lessons
    • First Steps
    • The Application Class
    • Types of Window
    • Dialog Boxes
  • Lab : Building WPF Application
    • In this practice, you will create a WPF application. You will exercise Application events such as Startup, Activated, Shutdown, and so on.
  • Lab : Splash Screen
    • In this lab, you will create a simple WPF application which will display a Splash Screen at startup.

    Module 3: Controls Part I

  • This module explains how to use the WPF built-in controls and their content model from the Visual Studio WPF Designer and Microsoft Expression Blend.Lessons
    • Built-in Controls
    • Microsoft Expression Blend
    • Content Model
    • Decorations
  • Lab : Image Browser
    • In this practice, you will create an Image Browser. You will create WPF controls from CSharp code including Menu, TreeView, Border, ToolTip and Expander controls.

    Module 4: XAML

  • This module explains how to declaratively design applications with the eXtensible Application Markup Language (XAML), how designers and developers collaborate using XAML, and how XAML relates to WPF. This module also reviews the XAML implementation and the design of logical trees which may contain type converters, non-declarative parts, and custom types.Lessons
    • Introducing XAML
    • XAML Fundamentals
    • Code Behind
    • XAML Properties
    • Custom Types
    • Markup Extensions
    • XAML Serialization
  • Lab : XAML Walkthrough
    • In this practice, you will create a WPF application based on Visual Studio WPF templates installed with “Orcas”. You will also change Window properties using XAML.
  • Lab : Code Behind XAML
    • In this practice, you will use markup code to create a simple WPF window that has a single button as its content. You will then add CSharp code behind and connect it to the markup code. In addition, you will write CSharp code inside XAML.
  • Lab : Markup My Types
    • In this lab, you will map custom and CLR types into markup. You will create type converters and use the property element syntax. You will also create Type Converters and Markup Extensions for best integration of custom types and XAML.

    Module 5: Layout

  • This module explains how to use the WPF layout mechanism, WPF panels, sizing, and measurement passes and how to implement custom layout.Lessons
    • The Layout System
    • Layout Panels
    • Sizing and Positioning
    • Blend Layout Support
    • Custom Layout
  • Lab : Mastering Layout
    • In this practice, you will create a Calculator UI to master the WPF Layout System, using DockPanel, WrapPanel, Grid, and Border.
  • Lab : Custom Radial Panel
    • In this lab, you will create a custom radial panel. This Panel lays its children out in a circle, keeping the angular distance from each child equal. You will use the Panel, MeasureOverride and ArrangeOverride methods. In addition you will use the UIElementMeasure and Arrange methods.

    Module 6: Controls Part II

  • This module explains how to use the WPF composition engines in custom and user controls, as well as how they are implemented in the WPF native UI elements and controls. This module also reviews the essentiality of these engines for styling, animation, data binding, and other features.Lessons
    • The Visual Layer
    • Dependency Properties
    • Routed Events
    • Input Handling
    • Commands
  • Lab : Color Picker User Control
    • In this lab, you will create a Color Picker user control with dependency properties and routed events. You will then write a simple window to test this control.

    Module 7: Data

  • This module explains how to work with resources and data in WPF through Data Binding and Data Templates.Lessons
    • Resources
    • Data Binding
    • Implementing Data Binding
    • Binding to Collections
    • Data Templates
    • Data Validation
  • Lab : Consuming Resources
    • In this practice, you will create Application level and Window level resources and change them in runtime. You will also learn how to create a special Resource Dictionary XAML file, and then merge it with other resources.
  • Lab : Binding to Business
    • In this practice, you will create a simple application for displaying system information. You will create a simple model objects with dependency properties, and bind them to the UI, using WPF’s Data Binding mechanism.
  • Lab : Photo Album
    • In this lab, you will redesign the Photo Album application to exploit WPF Data Binding. You will bind UI to single and collection sources, and you will practice collection views.

    Module 8: Graphics Media and Animation

  • This module explains how to implement a very rich application user interface with 2D vector graphics with emphasis on performance, brushes, imaging, video, and animation.Lessons
    • Graphics
    • Media
    • Animation
  • Lab : Graphics Media and Animation
    • The objective of this lab is to demonstrate the integration of the Windows Presentation Foundation’s rendering system, as well as to show the power of XAML. You will create 2-D content, animate it, add video, and finally map it onto a rotating 3-D surface – and you will do all of this without writing a single line of code.

    Module 9: Control Styles and Templates

  • This module explains how to use Control Styles and Templates to restyle the user interface and provide a completely new look to an application without resorting to custom controls.Lessons
    • Control Styles
    • Control Templates
    • Triggers
  • Lab : Tic-Tac-Toe
    • In this lab, you will create the famous Tic-Tac-Toe game. You will base your solution on WPF Control Styles, Templates and Data Templates. You will also practice triggering and data binding.

    Module 10: Asynchronous and Multithreading

  • This module explains how to work with WPF elements in a multithreaded environment and within asynchronous calls, considering the WPF single-threaded affinity model. Lessons
    • WPF Threading Model
    • The Dispatcher Class
    • Background Worker

    Module 11: Interoperability

  • This module explains how to implement interoperability between WPF and Win32/WinForms controls and discusses the limitations and pitfalls in the interaction of these technologies.Lessons
    • WPF and Win32
    • WPF and Windows Forms