Windows Presentation Foundation Using C#

Current Version: 4.8

This course introduces Windows Presentation Foundation or WPF, the .NET technology from Microsoft for building rich Windows applications. It was originally part of .NET 3.0, previously called "WinFX" by Microsoft. WPF includes an XML-based markup language for defining program elements, Extensible Application Markup Language (XAML). WPF applications can be created using only code or a combination of code and XAML pages. This course covers the essentials of WPF, providing an orientation to this technology and a firm foundation for creating applications. The course is current to . Visual Studio 2017 and the latest versions of the classical .NET Framework. WPF is not supported on .NET Core.

WPF is a complex technology that can have a steep learning curve. This course approaches the subject in a practical manner, introducing the student to the fundamentals of creating Windows applications using the features of WPF. It includes coverage of both traditional concepts such as controls and new concepts such as XAML, flexible layout, logical resources, dependency properties, routed events, and the loosely-coupled command architecture of WPF. Data binding is discussed in detail, including visual data binding using Visual Studio 2017 and accessing databases using Entity Framework 6. The course also covers styles, templates, skins and themes. The course concludes with a brief chapter on WPF and Windows Forms interoperation.

The course is hands-on with many example programs and lab exercises.

  • A working knowledge of C# and the .NET Framework
Course Objectives
On completion of this course, the student should be able to
  • Gain an understanding of the philosophy and architecture of WPF
  • Create Windows applications using the classes provided by WPF
  • Understand the principles of XAML and create applications using a combination of code and XAML
  • Use the layout features of WPF to create flexible and attractive user interfaces
  • Implement event and command-driven applications with windows, menus, dialogs, toolbars, and other common user interface features
  • Use more advanced features of WPF such as dependency properties, routed events, logical resources, styles, templates, and data binding
  • Access databases using Visual Studio 2017 and the Entity Framework 6
  • Learn how to interoperate between WPF and Windows Forms
4 Days

Instructor-led course, with practical computer-based exercises.

Course Outline

  • 1. Introduction to WPF
    • Why WPF?
    • What Is WPF?
    • .NET Framework 4.0 and Later
    • .NET Core and WPF
    • WPF Overview
    • Application and Window
    • A Simple WPF Application
    • Using Visual Studio 2017
    • Brushes
    • Panels

  • 2. XAML
    • Role of XAML
    • Elements and Attributes
    • Namespaces
    • Property Elements
    • Type Converters
    • Content Property
    • Collections
    • XAML and Procedural Code

  • 3. WPF Controls
    • Button
    • Label
    • TextBox
    • ToolTip
    • RadioButton
    • CheckBox
    • ListBox
    • ComboBox

  • 4. Layout
    • Sizing
    • Positioning
    • Transforms
    • Canvas
    • Drawing Shapes
    • StackPanel
    • WrapPanel
    • DockPanel
    • Grid
    • Scrolling
    • Scaling

  • 5. Dialogs
    • Message Boxes
    • Win32 Common Dialogs
    • Custom Modal Dialogs
    • Custom Modeless Dialogs

  • 6. Menus and Commands
    • Menus
    • Context Menus
    • Icons on Menu Items
    • Commands
    • Keyboard Shortcuts
    • Disabling Menu Items
    • Checking Menu Items

  • 7. Toolbars and Status Bars
    • Toolbars
    • Toolbars and Commands
    • Status Bars

  • 8. Dependency Properties and Routed Events
    • Dependency Properties
    • Change Notification
    • Property Value Inheritance
    • Support for Multiple Providers
    • Routed Events
    • Routing Strategies

  • 9. Resources
    • Resources in WPF
    • Binary Resources
    • Logical Resources
    • Static versus Dynamic Resources

  • 10. Data Binding
    • Binding Sources
    • Sharing Sources with DataContext
    • Data Templates
    • Value Converters
    • Collection Views
    • Data Providers
    • Visual Data Binding Using Visual Studio 2017
    • Database Access Using Entity Framework

  • 11. Styles, Templates, Skins and Themes
    • Styles
    • Style Sharing
    • Triggers
    • Validation
    • Templates
    • Templated Parent's Properties
    • Skins
    • Themes

  • 12. Windows Forms and WPF Interoperation
    • Mixing Forms and WPF Windows
    • Mixing Controls

  • Appendix A. Learning Resources

Hardware and Software Requirements

Required software is Visual Studio 2017, which includes LocalDB, a lightweight version of SQL Server 2016 Express. The free Visual Studio Community 2017 can be used. The operating system should be Windows 7SP1 or more recent. See the appropriate course Setup Guide for details.

A good minimal hardware profile for this course would have a 2 GHz or better CPU, 2 GB of RAM (4 GB recommended), and at least 10 GB of free disk space for tools installation and courseware.

Go to course catalogue