[go: up one dir, main page]

0% found this document useful (0 votes)
240 views38 pages

Intro To WPF

Windows Presentation Foundation (WPF) is Microsoft's next-generation platform for building desktop apps using XAML and .NET code. WPF uses vector graphics, animation, styles and templates to provide rich visual experiences. It also supports audio/video and separates the UI definition from business logic code.

Uploaded by

Umar Rashid
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
240 views38 pages

Intro To WPF

Windows Presentation Foundation (WPF) is Microsoft's next-generation platform for building desktop apps using XAML and .NET code. WPF uses vector graphics, animation, styles and templates to provide rich visual experiences. It also supports audio/video and separates the UI definition from business logic code.

Uploaded by

Umar Rashid
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 38

Introduction to WPF

Next Generation for Desktop Applications

Agha.Azeem@usa.edu.pk
azeem2793@gmail.com
Credits: Telerik
Table of Contents
1. Windows Presentation Foundation (WPF)?
2. WPF basic features
3. WPF and other UI technologies
 Windows Forms
 DirectX
 Silverlight
 HTML + CSS
4. WPF classes
5. XAML basics
2
What is Windows
Presentation Foundation?
What is Windows
Presentation Foundation?
 Windows Presentation Foundation (WPF)

 An entirely new graphical display system for


Windows
 Empowers rich-media applications
 Provides a clear separation between the UI
(XAML) and the business logic (C#,VB.NET)
 Influenced by modern display technologies such
as HTML, CSS and Flash
 Hardware-accelerated
4
WPF Basic Features
Vector Graphics
 All WPF graphics are Direct3D applications
 Direct3D (part of DirectX) is used in graphical
applications where performance is important
 Uses the video card hardware for rendering
 The result: high-quality rich-media UI
 Vector-based graphics allows to scale without
loss of quality
 WPF implements a floating-point logical pixel
system and supports 32-bit ARGB color
6
Rich Text Model
 WPF includes a number of extremely rich
typographic and text rendering features
 Some of them were not available in GDI
 Building international fonts from composite
fonts
 WPF text rendering takes advantage of
ClearType technology
 Use caching of pre-rendered text in the video
memory
 WPF has resolution-independent architecture
7
Animation
 WFP supports time-based animations

 Presentation timers are initialized and


managed by WPF
 Scene changes coordinated by using a
storyboard
 Animations can be triggered

 By other external events


 Including user action
 Animation can be defined on a per-object basis
directly from the XAML markup
8
Audio and Video Support
 WPF can incorporate audio and video into a
user interface
 Audio support in WPF is a thin layer
over the
existing functionality in Win32 and WMP
 WPF supports the video in formats WMV,
MPEG and some AVI files
 Relationshipbetween video and animation is
also supported
 They are both ways of showing moving images
 Animation can be synchronized with media
9
Styles and Templates
 In WPF a style
is a set of properties applied to
content used for visual rendering
 Similar to the concept of CSS
 E.g. setting the font weight of a Button control
 Use them to standardize non-formatting
characteristics
 WPF styles have specific features for building
applications
 Ability to apply different visual effects based on
user events 10
Styles and Templates (2)
 Templates in WPF allow you to fully change
the UI of anything in WPF
 Kinds of templates available within WPF
 ControlTemplate
 ItemsPanelTemplate
 DataTemplate
 HierarchicalDataTemplate

11
Commands
 Commands are more abstract and loosely-
coupled version of events
 Examples: copy, cut, paste, save, etc.
 WPF support for commands reduces the
amount of code we need to write
 It gives us more flexibility
to change the UI
without breaking the back-end logic
 Commands have action, source, target and
binding
12
Commands (2)
 The power of commands comes from the
following three features
 WPF defines a number of built-in commands
 Commands have automatic support for input
actions
 Some WPF controls have built-in behavior tied
to various commands
 Commands are intended to do two things:

 Check whether an action is available


 Execute an action
13
Declarative UI with XAML
 WPF introduces a new XML-based language
for describing UI elements known as XAML
 XAML = eXtensible Application Markup
Language
 XAML is a completely declarative language
 A declarative language says "what"
 An imperative language says "how"
 XAML describes the behavior and integration
of components (in most cases UI components)
14
Object-Based Drawing
 At the lower-level WPF works in terms of shapes,
not in terms of painting pixels
 Shapes are vector-based and can easily scale
 Developers create shape objects and let WPF
maintain the display in the most optimized way
 WPF provides a number of ready-to-use shape
objects like line, rectangle, ellipse, path, etc.
 Shape objects can be used inside panels and
inside most WPF controls

15
WPF and Other UI
Technologies
Windows Forms
 Windows Forms is the culmination of the
display technology built on GDI+ and User32
 It’s more mature than WPF
 Has solid limitations
 No separation between UI and the C# code
 WPF is the platform for the future of Windows
development
 Based on DirectX and Direct3D
 Separation between the UI and C# code
17
DirectX
 WPF create multimedia applications with real-
time graphics
 Such as complex physics-based simulators or
cutting-edge action games
 WPF applications are DirectX applications
 As a result, even the most mundane business
applications can use rich effects and antialiasing
 WPF graphics is entirely vector-based
 This allows zoom-in / soom-out with no loss of
quality
18
Silverlight
 Silverlight
is a cross-platform, cross-browser
plugin, which contains WPF-based technology
 Rich Internet Application (RIA) platform
 Including XAML and subset of WPF
 Provides rich-media features such as video,
vector graphics, and animations
 Silverlight
and WPF share the XAML
presentation layer
 Both technologies are similar, but Silverlight is
limited in many aspects
19
HTML + CSS vs. XAML + Styles
 Cascading Style Sheets (CSS) is a stylesheet
language
 Used to describe the presentation of
information in HTML documents
 XAML elements have Style property
 Similar to CSS (as a concept)
 The HTML and XAML are tag based systems to
describe UI
 XAML is more powerful in many aspects
20
XAML Basics
XAML Basics
 XAML is an XML-based language for creating
and initializing .NET objects
 It’s used in WPF as a human-authorable way of
describing the UI
 Used to separate the UI from the C# code
 XAML contains a hierarchy of elements
representing visual objects
 These objects are known as user interface
elements or UI elements

22
Elements and Attributes
 UI elements have a set of common properties
and functions
 Such as Width, Height, Cursor, and Tag
properties
 Declaring an XML element in XAML

 Equivalent to instantiating the object via a


parameterless constructor
 Setting an attribute on the object element
 Equivalent to setting a property of the same
name
23
XAML Basics - Example
 Constructs button with caption "OK"
<Window x:Class="MyFirstWpfApp.MainWindow" xmlns=
"http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml
Title="Hello, WPF" Height="300" Width="300">
<Button x:Name="button"
Width="200"
Height="25">OK</Button>
</Window>

24
Example – Explanation
 The root element, Window is used to declare a
portion of a class
 The two XML namespace declarations pull in
two commonly used namespaces
 The one for XAML itself
 The one for WPF
 Width, Height, Title are the XAML
properties

25
XAML Syntax
Live Demo
What is XAML?
What is XAML?
 eXtensible Application Markup Language
 XAML is a declarative markup language

 Used to simplify creation of UI for a .NET apps


 Separates UI and Business logic
 XAML enables a workflow where different
parties can work simultaneously
 The UI and the logic of an application can be
developed using different tools (VS and Blend)
What is XAML? (2)
 XAML is an XML-based language for creating
and initializing .NET objects
 It’s used in WPF and Silverlight as a human-
authorable way of describing the UI
 Used to separate the UI from the C# code
 XAML contains a hierarchy of elements
representing visual objects
 These objects are known as user interface
elements or UI elements

29
Declarative UI with XAML
 XAML introduces a new XML-based language
for describing UI elements known as XAML
 XAML = eXtensible Application Markup
Language
 XAML is a completely declarative language
 A declarative language says "what"
 An imperative language says "how"
 XAML describes the behavior and integration
of components (in most cases UI components)
30
Property Elements
 Not all properties have just a string value
 Some must be set to an instance of an object
 XAML provide syntax for setting complex
property values, called property elements
 Take the form TypeName.PropertyName
contained inside an TypeName element
A property element
<Ellipse>
<Ellipse.RenderTransform>
<RotateTransform Angle="45" CenterY="60" />
</Ellipse.RenderTransform>
</Ellipse>
32
Property Elements
Live Demo
Declarative vs.
Programmatically?
Why we need XAML?
Declarative vs.
Programmatically
 In WPF/Silverlighteach element can be done
either declaratively or programmatically
 No difference in the execution and speed
 Instantiating element from the code behind ruins
the idea of XAML
 The same as Windows Forms
 The following two examples are identical
 With XAML  From Code Behind

<Button Content="Click me!"/> Button button=new Button();


button.Content="Click me!";
Declarative UI
 When not using XAML with WPF/Silverlight

 Miss the idea of separation of concerns


 Two parties cannot work simultaneously on the
same file
 What happens when making object
declaratively?
 It is the same as instantiating the element with
parameterless constructor
 All the magic happens in
InitializeComponents()
WPF vs. Windows Forms
 Windows Forms

 Framework to design applications with GUI


 Does the same job as WPF
 Everything is in one place
 Much like java's swings (by concept)
 Windows Presentation Foundation (WPF)

 Separate UI and Business Logic


 Why change the concept of the UI?

 In Windows Forms all the code is in one place


 Harder for front-end and back-end developers
Questions?

You might also like