Saturday, July 31, 2010Login    
Topics
WPF

Windows Presentation Foundation (WPF), part of .NET Framework 3.0, builds the next-generation of Windows user experiences. It supports UI, media, documents, hardware acceleration, vector graphics, scalability to different form factors, interactive data visualization, and superior content readability. It is a client-side development library (not web). MS Expression Blend supports the development of such rich-client applications.

Resources:

  • Introduction to Windows Presentation Foundation (WPF) (MS) - comprehensive introduction pages.
  • WPF - What it is and isn't.
  • Introduction to Blend (pptx)
  • Microsoft WPF Boot Camp videos
  • 4 videos showing development of a showcase application
  • MS Expression Blend videos : Long list of information walkthru videos. Very good.
  • Expression Blend & WPF videos (Lynda.com)
Tutorials

Be sure to visit lynda.com for a range of video tutorials on the basics before attempting the following.

Application Samples (WPF) (MSDN)

This is a list of several WPF applications with full source. Download to Blend and see how they work.

Video How to: Create a C# WPF Application (MSDN)

Develops simple ink canvas drawing app implementing events in WPF.

Basics of Grid Editing and Grid Splitters (Dante Gagne &Total Training)

Work with the most flexible container control (Grid); divide grid space with grid dividers and allow the user to resize the divided space with gridsplitters.

Introduction to Styles (Todd Miranda)

Expression Blend can make editing the visual attributes of an element simple. However, that does not override the need to make a project easily maintainable. Styles in WPF allow for the reuse of certain groups of visual attribute settings by multiple elements. By grouping these visual attribute settings in one place and simply referencing them when needed, styles help the developer and the designer make changes to an entire application from one place.

Creating and Using Brush Resources (Todd Miranda)

Blend supports creating brush resources using XAML. However one of the benefits of using Expression Blend to create brush resources is that the brush can be created using the rich toolset of Expression Blend and then, once happy with it, convert it to a resource. The resource can then be placed in whatever scope you would prefer.

Adding Video (Todd Miranda)

Simple means to add and manipulate video in WPF.

Creating and Using an XMLDataSource (Todd Miranda)

Blend provides an easy-to-use toolset to create XMLDataSources and use them to bind to controls. In this presentation Todd Miranda will demonstrate how to create and use an XMLDataSource in Expression Blend.

Binding to External Data Sources (Lynda.com)

An alternative look at binding with a RSS feed.

Binding to XML (Josh Smith)

Simple listbox displaying contents of XML file and accompanying stackpanel showing details of item selected.

Binding a CLR object to a custom list box (Todd Miranda)

This tutorial looks at how to data bind an in-memory Common Language Runtime (CLR) object such as a collection to an on-screen list box. This involves creating a new collection class based on the ObservableCollection<T> base class. This is preferable to existing collection classes (e.g. List<T>) since it ensures that the data source notifies (and is notified) the display control of any changes to the date - this keep the display data synched with the data source.

Creating a Data Template (Todd Miranda)

Blend not only makes it easy to create datasources, but it includes an easy interface to create data templates used to display data. This presentation shows how to create a data template to customize the way databound data is displayed. .

Creating a Control template (Todd Miranda)

Not happy with the built-in controls? Craft your own mixing existing controls and changing their appearance to create a totally new control. Wrap it into a dll control library and share it across apps. Do note that often styling will be sufficient to give your controls a different look but if the changes you want run deeper then you can edit the default template for that control or work from scratch and write XAML for a whole new control.

3rd Party WPF Apps

WPF Introduction to features (MS)
Family.Show
(Vertigo) (news item)
Flickr API w/ Silverlight
Chess (.NET Silverlight 1.1 vs. Silverlight 1.0 Javascript)
Harmony (WPF) album browser
deCollage (WPF) screen saver
PhotoBrowser (WPF) (needs Flickr API key) (video)
Denounce (WPF) Podcast manager
Nostalgia (WPF) Flickr Explorer
Scripps (WPF) App

Advanced

Creating data templates in code (Tamir Khason)