Getting to know WPF | CodeGuru

Getting to know WPF

Introduction 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, […]

Written By
CodeGuru Staff
CodeGuru Staff
Jan 4, 2010
3 minute read
CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More

Introduction

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″
      xmlns_x=”http://schemas.microsoft.com/winfx/2006/xaml”
      Title=”Window1″ Height=”300″ Width=”300″>
      <Grid>
      <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>
    </Grid>
  </Window>

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
      MsgBox(TextBox1.Text)
    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.

Advertisement

Summary

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.

Biography

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 Amazon.com 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 paulk@devexpress.com
and read his DX blog at http://
community.devexpress.com/blogs/paulk
.

CodeGuru Logo

CodeGuru covers topics related to Microsoft-related software development, mobile development, database management, and web application programming. In addition to tutorials and how-tos that teach programmers how to code in Microsoft-related languages and frameworks like C# and .Net, we also publish articles on software development tools, the latest in developer news, and advice for project managers. Cloud services such as Microsoft Azure and database options including SQL Server and MSSQL are also frequently covered.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.