Chapter 1. Hello, WPF
WPF is a completely new presentation framework, integrating the capabilities of many frameworks that have come before it, including User, GDI, GDI+, and HTML, as well as being heavily influenced by toolkits targeted at the Web, such as Adobe Flash, and popular Windows applications like Microsoft Word. This chapter will give you the basics of WPF from scratch, and then a whirlwind tour of the things you'll read about in detail in the chapters that follow.
WPF from Scratch
Example 1-1 is pretty much the smallest WPF "application" you can write in C#.
Example 1-1. Minimal C# WPF application
// MyApp.cs using System; using System.Windows; // the root WPF namespace namespace MyFirstWpfApp { class MyApp { [STAThread] static void Main( ) { // the WPF message box MessageBox.Show("Hello, WPF"); } } }
Tip
The STAThread attribute
signals .NET to make sure that when COM is initialized on the
application's main thread, it's initialized to be compatible with
single-threaded UI work, as required by WPF applications.
In fact, this is such a lame WPF application that it doesn't even
use any of the services of WPF; the call to MessageBox.Show is just an interop call to
Win32. However, it does require the same infrastructure required of
other WPF applications, so it serves as a useful starting point for our
explorations.
Building Applications
Building this application (Example 1-2) is a matter of firing off the C# compiler from a command shell with the appropriate environment variables. ...