Simple Demonstration of WPF(Windows Presentation Foundation)
Posted by Sudeep Pandey on October 29, 2008
The Windows Presentation Foundation is Microsofts next generation UI framework to create applications with a rich user experience under Windows Vista. It is part of the .NET framework 3.0 and higher.
Advantages of WPF
WPF has a number of advantages over WindowsForms. The following list shows the most important.
* Resolution independence
You specify the size of objects in inches not in pixels. When the screen resolution gets higher, objects just appear crispier but they stay the same size.
* Hardware acceleration
WPFs vector based rendering engine takes advantage of modern graphic cards. This makes the user interface incredibly fast and scaleable.
* Rich composition
WPF controls are highly composable. That means that you can put almost any control into another. This reduces the number custom controls dramatically.
* Templates and Styles
WPFs styling and templating capabilities allows it to entirely replace the look and feel of any controls.
* Documents
WPF has a built in support for complex documents with multi column layouts. It can natively read and write XPS documents.
* Multimedia Support
WPF has a built-in support for audio, video and images. You can play a video with a single line of XAML.
* 3D
With WPF you can create complex 3D scenes including materials with textures, meshes, cameras, lights, etc.
WPF application uses a markup language called as XAML (XML Application Markup Language) and this application can be deployed on the desktop or hosted in a web browser. Microsoft SilverLight is a web based subset of WPF.
Lets demonstrate in a simple program:
The below given is a simple XAMPL file—named it as Window1.xampl. This program creates a GUI which contains a listbox where certain items are listed and one button with text box to add item in a listbox and another button to delete a selected item of listbox.
<Window x:Class=”WPFExmp1.Window1″
xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”
xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”
Title=”Window1″ Height=”296″ Width=”389″>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width=”278*” />
<ColumnDefinition Width=”0*” />
</Grid.ColumnDefinitions>
<ListBox Height=”100″ HorizontalAlignment=”Left” Margin=”10,10,0,0″ Name=”listBox1″ VerticalAlignment=”Top” Width=”120″ >
<ListBoxItem Content=”Coffee”></ListBoxItem>
<ListBoxItem>Juice</ListBoxItem>
<ListBoxItem Content=”Tea”></ListBoxItem>
<ListBoxItem Content=”Juice”></ListBoxItem>
</ListBox>
<Button Height=”23″ Margin=”138,10,154,0″ Name=”button1″ VerticalAlignment=”Top” Click=”button1_Click”>Add item</Button>
<TextBox Height=”23″ HorizontalAlignment=”Right” Margin=”0,10,36,0″ Name=”textBox1″ VerticalAlignment=”Top” Width=”107″ />
<Button Height=”23″ Margin=”138,40.4,154,0″ Name=”button2″ VerticalAlignment=”Top” Click=”button2_Click”>Delete Item</Button>
</Grid>
</Window>
The code below is code behind code–named it as Window1.xampl.cs.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WPFExmp1
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
listBox1.Items.Add(textBox1.Text);
}
private void button2_Click(object sender, RoutedEventArgs e)
{
listBox1.Items.Remove(listBox1.SelectedItem);
}
}
}

samirad said
Bro why don’t u write something about WCF. It’s helpful