Learn Enterprise WPF with XAML from Scratch
4.2 (432 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
3,445 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Learn Enterprise WPF with XAML from Scratch to your Wishlist.

Add to Wishlist

Learn Enterprise WPF with XAML from Scratch

Learn how to create a powerful Windows application with rich UI on WPF platform.
Bestselling
4.2 (432 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
3,445 students enrolled
Created by Elias Fofanov
Last updated 6/2017
English
English
Current price: $10 Original price: $20 Discount: 50% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 3.5 hours on-demand video
  • 4 Articles
  • 61 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Compose complex layouts
  • Harness the full power of controls
  • Apply data binding
  • Create bindable properties
  • Create and apply custom templates
  • Create and apply resources
  • Make UI looking stylish
  • Develop full-fledged WPF applications
View Curriculum
Requirements
  • You should already be familiar with the basics of C#
Description

Learn deeply the concepts and tools that you will need to build fully functional UI-applications with the modern UI-building framework, Windows Presentation Foundation (WPF).

Teaching Approach

No fluff, no ranting, no beating the air. I esteem your time. The course material is succinct, yet comprehensive. All important concepts are covered. Particularly important topics are covered in-depth. For absolute beginners I offer my help on Skype absolutely free, if requested. Don't forget that this course has English subtitles, so if you don't understand my accent, feel free to turn them on.

Take this course and you will be satisfied.

Build a strong foundation in WPF with this course

Today, almost all applications have rich UI, console applications are very specific. Learning the essentials of WPF puts a powerful and very useful tool at your fingertips. Being familiar with WPF will make it absolutely easy to move to Universal Windows Platform (UWP) if needed, because these technologies rely basically on the same principles and they are both XAML-based.

Content and Overview

This course is primarily aimed at beginner to intermediate developers. It provides solid theoretical base reinforced by tons of practical material.

WPF is a very wide platform and it’s impossible to cover all its features in a single course, or in a single book. That’s why this course includes all the topics needed for the developing of a full-fledged Windows UI-application, sacrificing some advanced topics such as interoperation with Windows Forms, skinning, creating custom markup extensions etc.

The most beneficial aspect of this course is that it gives you the deep understanding of the platform. For example, you will understand how the layout process really works. It helps to compose XAML quicker. Sometimes you’ll find yourself baffled by the events system of WPF without deep understanding of how it really works.

In short, the course covers the following topics:

  • Basic notions of UI-development
  • Controls
  • Layout
  • Data-Binding
  • Core-Types of WPF
  • Events and Dependency Properties
  • Templates
  • Resources
  • Styles
  • User Controls
  • Custom Controls
  • WPF application model (threading model, app life-cycle)

In the end we will recap what you have learned and you will try to understand where you have to go further with intention to master your skills. Here we will have a discussion of different paths you can go on.

How long is this course: The course is around 3.5 hours. All are video lectures. You will be able to download all the slides and code samples used in the course.

------------------------------------------------------------

Keywords related to the course:

  • Visual Studio WPF
  • WPF beginner tutorial
  • XAML tutorial
  • WPF and XAML tutorial
Who is the target audience?
  • Beginners to quickly start developing Windows apps with rich UI
  • Any experienced WPF-developer who would like to refine their knowledge in the platform
Students Who Viewed This Course Also Viewed
Curriculum For This Course
107 Lectures
03:41:55
+
Introduction
10 Lectures 30:47
How to Ask Questions
00:24

Welcome to the course "Learn Enterpeise WPF with XAML from Scratch"! 

In this lecture I'll reveal the list of topics you are going to learn.

Preview 03:29

This lecture is about advantages of WPF framework. Windows Forms is still alive. So you have to make a choice.

Preview 03:22

In this lecture you'll get acquainted with the WPF Architecture: its layers and responsibility of that layers. This is important think for overall understanding of what WPF is in essence.

Preview 03:03

Whether WPF is alive? This lecture answers this question!

Preview 01:15

What is the relationship between .NET and WPF today?

.NET and WPF
02:08

Support and great Tooling are very important things of any framework and WPF is not an exception. Learn more about how Visual Studio and Blend support WPF.

Support and Tools
02:47

This topic is kind of optional to learn. It is not connected with WPF directly on a half. But I encourage you to learn this lecture, because it gives you the understanding of some basic notions like "Pixel", "Aspect Ratio", "Independent Resolution in WPF" and so on.

Basics of UI-development
06:00

In this lecture you'll see XAML in Visual Studio in action.

XAML Basics
07:21

Summary
00:58

Intro Quiz
6 questions
+
Controls
19 Lectures 39:38

This module is all about WPF controls. We are going to talk about buttons, Expander, GroupBox, Slider, ProgressBar and many other controls.

Outline
00:40

This lecture shows the overall hierarchy of WPF controls.

Class Hierarchy
02:38

This lecture shows the overall WPF buttons classes hierarchy.

Buttons Intro
00:42

You'll see WPF buttons in this lecture in practice: how ToggleButton works, regular Button, CheckBoxes, RadioButtons.

Preview 08:25

In this lecture you'll see the diagram which shows the hierarchy of Headered Content Controls.

Headered Content Controls Intro
00:45

In this lecture you'll see two WPF Headered Content Controls: GroupBox and Expander.

Headered Content Controls Demo
01:00

In this lecture you'll see the diagram which shows the hierarchy of WPF Range Controls. Range Controls are controls which represent a value within the allowed range.

Range Controls Intro
01:01

Slider is a Range Control which allows to its users to set\change a value by dragging a thumb.

Preview 02:47

This lecture shows in practice a ProgressBar. Usually, it is used for displaying the progress of a long-running task.

ProgressBar Demo
01:14

In this lecture you'll be acquainted with Items Controls. The classes hierarchy is shown.

Items Controls Intro
01:48

In this lecture I'll introduce Selectors. Selectors allow to select indexed items. In the following lectures you'll get acquainted with ComboBox, ListBox and TabControl as the most commonly used selectors.

Selectors
01:20

Look at a ComboBox - control which has a dropdown box.

ComboBox Demo
04:21

Look at how to use ListBox with a DataTemplate in practice.

ListBox Demo
02:58

In this lecture you will look at a TabControl which separates content by pages.

TabControl Demo
00:46

TreeView Demo
01:09

In this lecture you will learn how to use text controls such as Label, TextBox and TextBlock (which actually is not a control).

Text Controls Demo: TextBlock, TextBox, Label
04:20

In this screen cast you will learn the features of the Image control. We are not going to look at this control in a separate lecture. You'll see this Control many times throughout the course.

Image Control
01:39

This lecture shows Menu, StatusBar and ToolBar.

Menu Controls Demo: Menu, Toolbar, StatusBar
01:02

Summary
01:03

Controls Quiz
16 questions
+
Layout
20 Lectures 33:17

WPF is a unique framework and it introduces its own unique two-stage layout process. In this module you'll learn how layout process really works. Also, you'll learn how to position and size UI-elements, how to arrange UI-elements using Panels.

Outline
00:56

In this lecture you will learn on which WPF Core Types the layout is based on.

Preview 01:05

Learn the two-step layout process implemented in WPF.

Layout Process Intro
01:55

Layout Process Demo
05:02

In this lecture you'll see what properties are responsible for sizing UI-elements in WPF.

Sizing UI-Elements Intro
02:16

In this lecture you'll see how sizing works in practice. Do you know about ActualSize property?

Preview 04:04

Learn about positioning UI-elements in WPF. You'll learn how to use Alignments.

Positioning UI-Elements Intro
01:13

In this lecture you'see in practice how Horizontal, Vertical, HorizontalContent and VerticalContent Alignments work in practice in WPF.

Positioning UI-Elements Demo
01:32

ViewBox is a control which supports scaling of its content.

ViewBox Intro
00:53

In this lecture you'll see in practice how Stretch and StretchDirection works.

ViewBox Demo
02:40

You'll get acquainted with the panel's base class "Panel".

Panel
00:47

In this lecture you'll get acquainted with the Canvas panel which provides absolute positioning of its child elements.

Canvas Intro
00:55

In this lecture you'll take a brief look at the Canvas panel which provides absolute positioning of its child elements.

Canvas Demo
00:31

In this lecture you'll get acquainted with the WrapPanel panel which provides arranging its child elements into stacks with wrapping.

WrapPanel Intro
01:00

In this lecture you'll take a brief look at the WrapPanel panel which provides arranging its child elements into stacks with wrapping.

WrapPanel Demo
01:08

In this lecture you'll get acquainted with the DockPanel panel which provides docking of its child elements to the sides of a panel.

DockPanel Intro
00:49

In this lecture you'll take a brief look at the DockPanel panel which provides docking of its child elements to the sides of a panel.

DockPanel Demo
00:58

In this lecture you'll get acquainted with the GridPanel panel which provides arranging child elements by rows and columns.

Grid Intro
02:22

In this lecture you'll take a brief look at the GridPanel panel which provides arranging child elements by rows and columns.

Grid Demo
01:36

Summary
01:35

Layout Quiz
8 questions
+
Properties and Events
8 Lectures 16:55
Outline
00:44

Learn the difference between Logical and Visual trees.

Logical and Visual Trees
01:13

Learn the features of a unique WPF properties system.

DependencyProperty Intro
03:00

This lecture shows how to create and use an attached property in practice.

DependencyProperty Demo
01:55

This lecture reveals the algorithm of determining the value of a DP.

Calculating the Value of a Dependency Property
01:58

WPF introduces its own unique event system. WPF events called "Routed Events" because they can bubble and tunnel.

Routed Events Intro
01:06

In this lecture you'll learn the peculiarities of bubbling, tunneling and direct events in WPF.

Preview 06:08

Summary
00:51

Properties and Events Quiz
5 questions
+
Data Binding
13 Lectures 31:18

Data Binding is a very powerful feature of WPF. This module is all about Data Binding. In this lecture I'll outline the topics of this module.

Outline
01:04

Learn the main properties of the Binding type.

Preview 02:13

In this lecture you'll see how bindings work in practice. How to bind one element's dependency property to another.

Basic Data Binding Scenario
05:17

Learn the ways of setting the Source object.

Source Object Intro
01:18

WPF provides several ways of setting the connection between the source and target objects. Learn how to set Source using StaticResource, how to set DataContext and how to use RelativeSource markup extension in practice. 

Source Object Demo
07:40

In this lecture you'll get acquainted with the INotifyPropertyChanged interface.

Changes Notification
02:05

In this lecture you'll be introduced to the ObservableCollection. It provides notifications of collection changes.

Binding to a Collection
03:13

DataGrid
01:18

WPF introduces Converters in order to build a bridge between incompatible types.

Converters Intro
01:09

Learn how to create your own Binding Converter and how to apply it to a binding.

Converters Demo
02:15

WPF supports asynchronous bindings, because everything nowadays is asynchronous.

Asynchronous Binding
00:47

I'll show in this lecture how WPF application is hanging when a data binding performs long running task and how to fix such a problem using Asynchronous Binding.

Asynchronous Binding Demo
02:05

Summary
00:54

Data Binding Quiz
7 questions
+
Resources
10 Lectures 12:06

WPF Resource system is extremely important. Bindings, Styles, Templates, gosh... almost everything is based on WPF Resources in WPF.

Outline
00:48

Learn which build actions you can set to work with resources. You'll see the following options: Content, Resource, EmbeddedResource.

Binary Resources Intro
01:28

Learn how to use build actions in practice. You'll see the following options: Content, Resource, EmbeddedResource. You'll see how to retrieve an image from the EmbeddedResource.

Binary Resources Demo
02:52

Almost all declared resources in WPF are Logical Resources.

Logical Resources Intro
01:22

Look at an example of logical resources in WPF.

Logical Resources Demo
00:37

In this lecture you'll learn what Static and Dynamic resource markup extensions mean. How and when to use them in practice in WPF.

Preview 01:02

WPF has a complex system of properties and events. This fact leads to a complex algorithm of calculating the final value of Dependency Properties.

Resources Lookup
01:09

ResourceDictionaries are supported by WPF intrinsically. Resources are always reside in Resource Dictionaries.

ResourceDictionary Intro
00:52

In this demo you'll see how to use add and how to work with resource dictionaries in WPF.

ResourceDictionary Demo
01:12

Summary
00:44

Resources Quiz
7 questions
+
Styles, Triggers, Templates, Skins
10 Lectures 20:33

WPF provides super powerful features: 

  • Styles to make applications looking cool
  • Triggers to enhance different behavioral and looking aspects
  • Templates to completely restyle WPF controls
  • Skins to completely restyle applications on the fly
Outline
01:09

Styles are used to make WPF applications look, well, stylish. They help to aggregate properties with setters in order to reuse them as Styles.

Styles Intro
00:53

In this lecture you will learn how to create and apply styles in practice.

Preview 06:17

In this lecture we will introduce WPF Triggers. They are used to make UI-elements reactive.

Triggers Intro
00:55

In this lecture you'll learn how to create and apply all kinds of triggers: 

  • Property Trigger
  • Data Trigger
  • Event Trigger
Triggers Demo
02:28

WPF Controls are "lookless". In order to define a custom look you can use templates.

Templates Intro
01:31

In this demo you'll learn how to create and apply a custom template in WPF.

Templates Demo
03:20

Skin is not a concept of WPF. Skin is a set of styles and templates which can be applied to the application in the runtime.

Skins Intro
00:39

This demo shows how to change skins in WPF on the fly (in the runtime).

Skins Demo
02:29

Summary
00:52

Styles, Triggers, Templates, Skins Quiz
5 questions
+
User Controls and Custom Controls
5 Lectures 08:34

In this module we are going to look at User Controls and Custom Controls. These features allow us to reuse WPF UI-related code.

Outline
00:40

In this lecture you'll learn how to decide whether you should use either a User or Custom control.

Difference Between User and Custom Controls
01:48

In this lecture you'll see a practical example of retrieving a chunk of reusable XAML-code and reusing it as a UserControl.

UserControl Demo
03:32

In this demo you'll see how to create your own button in WPF, which provides the new property CornerRadius.

Custom Control Demo
01:51

Summary
00:43

User and Custom Controls Quiz
2 questions
+
WPF Application Model
12 Lectures 28:19

In this module I'll outline the topics of this module. WPF has its own application model, which is quite similar to Windows Forms.

Outline
00:41

In this lecture you'll learn how WPF application starts and where is the Main entry point.

Preview 02:11

I'll introduce here the startup process of WPF applications.

Application Startup Intro
02:00

I'll introduce here the shutdown process of WPF applications.

Application Shutdown Intro
02:21

Look at WPF application life cycle events in practice.

Startup and Shutdown Demo
03:50

In this lecture you'll learn what is STA and how WPF manages UI-threads and UI-elements ownership.

Preview 02:17

In this demo you'll see how threading works in practice in WPF applications.

Threading Model Demo
03:43

In this lecture you'll learn what is Global Exceptions Handling and what is the purpose of this approach.

Preview 02:51

In this demo you'll see how to handle global exception events to prevent your WPF application from crash and to log exception information.

Global Exceptions Handling Demo
06:17

Summary
00:26

WPF Application Model Quiz
12 questions

Where to Move Next?
00:24

You can download source code for this course here.

BONUS LECTURE: Download Sources
01:18
About the Instructor
Elias Fofanov
4.4 Average rating
696 Reviews
5,861 Students
7 Courses
Software Engineer

I'm thankful enough for that I love what I do.

I began my career as a postgraduate student participating in Microsoft ImagineCup contest.

I've been working with .NET platform since 2003. I've been professionally architecting and implementing software for nearly 7 years, primarily based on .NET platform. I'm passionate about building rich and powerful applications using modern technologies. I'm a certified specialist in Windows Applications and Service Communication Applications by Microsoft.

"If it's work, we try to do less. If it's art, we try to do more." - Seth Godin.

What I can say is that software is my art.