Course info
Apr 26, 2013
2h 32m

WPF is and remains the premier framework for building Line of Business/ Enterprise Windows applications. This course will teach you all you need to know, from absolute scratch through advanced skills in building WPF applications. The emphasis is on best practices and the needs of enterprise application developers. Skills covered include the fundamentals of XAML, layout, controls, panels, asynchronous programming, data binding, data display and much more.

About the author
About the author

Jesse Liberty is a Senior Consultant at Wintellect, where he specializes in Xamarin, Azure and Web development. He is a Certified Xamarin Developer, a Xamarin MVP and a Microsoft MVP.

Section Introduction Transcripts
Section Introduction Transcripts

Hello, this is Jesse Liberty from Pluralsight and welcome to the WPF for the Enterprise with C# and XAML. The good news is that WPF is alive and flourishing. It is the development platform of choice for desktop applications on Windows 8 and all previous versions of Windows. It is also very much in demand in the Enterprise for building line of business applications. This course will begin with an understanding of XAML, the declarative language of WPF. And we'll continue with the best practices and patterns for building WPF applications. We assume you‘re already somewhat conversant with C# and you know you way around Visual Studio, at least enough to get started. And the only software that you'll need for this course is Visual Studio. This course is somewhat different from other courses, even other Pluralsight courses, in that we will be tackling the "why's" and the "where for's" and understanding how things work through building applications and demonstrations. To see that at work let's get started with our first demo, Hello WPF.

XAML Rapid Tutorial - Panels
There's quite a bit to learning XAML, but the fundamentals are straightforward. In this Rapid XAML Tutorial, we're going to cover a number of topics through demonstrations and explanations and bring you very quickly up to speed on using XAML as a markup language. XAML is very much like HTML on steroids; that is, you can not only use it as a simple markup language, but you can add a great deal of declarative functionality as well and we're going to see how that works and what that means as we explore XAML. In our exploration of XAML, we will cover panels and how they're used in layout. We'll become acquainted with the basic controls for creating forms, gathering data, and displaying data. We'll look at properties for manipulating those controls and complex properties for adding information to controls when simple properties won't do. We'll then look at how to handle events in the Code Behind file. To get started, we're going to look at how we use panels for layout. We've already had a glimpse of the grid, we'll dive much deeper into the grid and take a look at the Stack Panel, Wrap Panel, the Dock Panel, and for a moment, the Canvas, although the Canvas is not much used in line of business applications in WPF. Let's take a look at how these various panels work and work together.

XAML Rapid Tutorial - Controls
Our Rapid Introduction to XAML continues with an exploration of the Controls available in WPF. Controls are the onscreen widgets that display and collect information from the user. We can arbitrarily group the controls from WPF into Text Controls, Selection Controls, List Controls, and all the other controls, but there are a great many controls provided right out-of-the-box. And the easiest way to see how to use these controls and to understand what they have in common and the pattern of usage, is to create a small form that uses many of the WPF controls to gather data from the user.

Advanced Controls
In addition to the common controls, such as buttons, checkboxes, radio buttons, and so forth, WPF comes with a number of Advanced Controls to enhance your application. This includes such things as the Tab Control, which is used for creating tabbed pages, as well as the Data Grid, which is used for handling large amounts of information, the Tree View, which is used for handling hierarchical information, and the Status Bar. In addition, there are controls for creating menus and pop-up menus. Let's take a look at how each of these controls works and contributes to building a professional looking application.

While gratuitous animation can make your application look cheesy and amateurish, professional animation, subtle animation, can make all the difference in making your application look polished and professional. To understand animation, we're going to start by taking a look at the basic shapes that are available out-of-the-box with WPF. We'll then look at the brushes that are used to fill those shapes with color and we'll turn to the workhorse of animation: Storyboards. With that under our belt, we'll look at Blend; a wonderful application that complements Visual Studio and is especially useful in creating animations. Let's take a look at a couple demos that illustrate fundamentals of animation.

Styles and Templates
An entire course could be devoted to the appearance of WPF applications. However, mastering the basics of Styles and Templates is not terribly difficult and can make a huge difference in the professional appearance of your application. Styles and Templates can be managed by designers, but can also be managed reasonably by developers. Styles are used to give a uniform look or appearance to a set of controls. Implicit Styles are used to apply an appearance to all controls of a given type and simplify the application of styles as we'll see. All controls in WPF are inherently lookless and they get their appearance from templates. We'll take a look at some of the fundamentals of modifying and creating templates to manage the look and feel of your application. As part of that, we will also take a look at the Visual State Manager, which manages changes the appearance of your controls as you move from one state, such as mouse hovering, to another, such as mouse click. Let's take a look at some simple demos for styles and for templates.