Getting to know WPF


I will be the first to admit I don't know everything. It's almost ludicrous to make such an obvious statement, but there it is. I looked at WPF very early and saw just a handful of controls, and I thought to myself "self this puppy is not ready" and focused on LINQ instead.

Well, I just got back from PDC in LA signing books- Professional DevExpress ASP.NET Controls- for the great company that I work for Developer Express and kept hearing that WinForms is dead. While I am suspicious about WinForms being dead I have always contended that Web development and Windows development begged homogenization. WPF and XAML (XML for Applications) may be the solution, and so it's high time I stick my toes tepidly back into the world of XAML.

If you are past the introductory level of WPF then you may want to skip this article. However, if you enjoy a little schadenfreude then you can read along and watch me struggle through WPF as I try to connect the dots and figure out how what I already know applies to WPF.

Hello World (or as I put it Jello Mold)

It used to be that when you designed a form--and still is in WinForms--that a forms state was serialized as object statements and imperative lines of code. The first thing you will notice about WPF in Visual Studio 2008 is that besides there being many more WPF controls the form is described as XAML. XAML is XML tuned for applications. The XAML for a simple WPF form with a TextBox and Button is declaratively expressed as shown in Listing 1.

  <Window x:Class="Window1"
      Title="Window1" Height="300" Width="300">
      <TextBox Height="23" Margin="19,46,139,0" Name="TextBox1" VerticalAlignment="Top" />
      <Button Height="23" HorizontalAlignment="Right" Margin="0,46,36,0" 
		Name="Button1" VerticalAlignment="Top" Width="75">Push Me</Button>

Listing 1: The XAML for a simple WPF form

You can design the form much as you would in WinForms or modify the XAML directly. Instead of the three files, .designer.vb, .vb, and .resx files, you get in WinForms, WPF uses two files: .xaml and .xaml.vb. The .xaml file contains the XAML and the .xaml.vb is the backing code for you WPF projects.

Adding code to a .xaml file feels just like coding a WinForms file. For example, given a TextBox and Button you can implement the Click event for the button by double-clicking the button and writing VB code. Listing 2 contains the code for the XML in listing 1.

  Class Window1 
  Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.Windows.RoutedEventArgs) _
          Handles Button1.Click
    End Sub
  End Class

Listing 2: The very simply implementation of the XAML form

The results--if you enter some text and click the button- -are as you would expect. A message box is displayed containing the contents of the TextBox control. The design time form is shown in Figure 1.

Figure 1: The XAML is shown on the bottom and the design time view of the form is shown above

Now I have to do some reading. I am sure just to make everything a little more challenging there is a whole new set of vernacular associated with WPF. Like everyone else I will have to immerse myself in the world of WPF before I can adequately share that information with you.


I have been writing the VB Today column for more than ten years now. The one truism that remains as regards technology is that "the only constant is change". WPF appears to be the change for developers for the foreseeable future with significant investment having been made for VS2010. I will still be doing some examples in WinForms, but it looks like a clear signal is being sent that developers start investing in WPF.

In my spare time I will be working on Sams Teach Yourself the Entity Framework in 24 Hours, and I am interested in seeing how the Entity Framework and LINQ in .NET 4.0 can be used with WPF development. Check back every week or so to begin your exploration of these technologies.


Paul Kimmel is the VB Today columnist for CodeGuru and has written several books on object-oriented programming and .NET. Check out his upcoming book Professional DevExpress ASP.NET Controls (from Wiley) now available on and fine bookstores everywhere. Look for his upcoming book Teach Yourself the ADO.NET Entity Framework in 24 Hours (from Sams). You may contact him for technology questions at pkimmel@softconcepts .com. Paul Kimmel is a Technical Evangelist for Developer Express, Inc, and you can ask him about Developer Express at and read his DX blog at http://


  • There are no comments yet. Be the first to comment!

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Information is data with context. The era of Big Data has begun demonstrating to information security that there is more that can, and must, be done to identify threats, reduce risk, address fraud, and improve compliance monitoring activities by bringing better context to data and thereby creating information for actionable intelligence. This analyst report sets the stage and provides insights into IT and information security practitioners' perceptions of the impediments to, and the solutions necessary for, …

  • Live Event Date: January 27, 2015 @ 1:00 p.m. ET / 10:00 a.m. PT For years, identity and access management (IAM) has been seen as the project of denial, restriction, limitation and sometimes failure. The processes and technologies required to enhance security seemed also destined to stifle collaboration and interfere with revenue-generating work. In fact, at times, the processes forced employees, partners and customers to spend precious time searching for ways to circumvent the IAM infrastructure in order to …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date