40
Introduction to WPF Next Generation for Desktop Applications Doncho Minkov Telerik School Academy schoolacademy.telerik.c om Technical Trainer http://www.minkov.it http://schoolacademy.telerik.com

Introduction to WPF

  • Upload
    telma

  • View
    46

  • Download
    0

Embed Size (px)

DESCRIPTION

http://schoolacademy.telerik.com. Introduction to WPF. Next Generation for Desktop Applications . Doncho Minkov. Telerik School Academy. schoolacademy.telerik.com. Technical Trainer. http://www.minkov.it. Table of Contents. What is Windows Presentation Foundation (WPF)? - PowerPoint PPT Presentation

Citation preview

Page 1: Introduction to WPF

Introduction to WPFNext Generation for Desktop Applications

Doncho Minkov

Telerik School Academyschoolacademy.telerik.com

Technical Trainerhttp://www.minkov.it

http://schoolacademy.telerik.com

Page 2: Introduction to WPF

Table of Contents1. What is Windows Presentation

Foundation (WPF)?2. WPF basic features3. WPF and other UI technologies

Windows Forms DirectX Silverlight HTML + CSS

2

Page 3: Introduction to WPF

Table of Contents (2)4. WPF architecture5. WPF core assemblies6. WPF namespaces7. WPF classes8. XAML basics

3

Page 4: Introduction to WPF

What is Windows Presentation Foundation?

Page 5: Introduction to WPF

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

5

Page 6: Introduction to WPF

WPF Basic Features

Page 7: Introduction to WPF

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

7

Page 8: Introduction to WPF

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

8

Page 9: Introduction to WPF

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

9

Page 10: Introduction to WPF

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

Relationship between video and animation is also supported They are both ways of showing

moving images Animation can be synchronized with

media

10

Page 11: Introduction to WPF

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

11

Page 12: Introduction to WPF

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

12

Page 13: Introduction to WPF

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

13

Page 14: Introduction to WPF

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

14

Page 15: Introduction to WPF

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)

15

Page 16: Introduction to WPF

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

16

Page 17: Introduction to WPF

WPF and Other UI Technologies

Page 18: Introduction to WPF

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

18

Page 19: Introduction to WPF

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

19

Page 20: Introduction to WPF

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

20

Page 21: Introduction to WPF

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 21

Page 22: Introduction to WPF

XAML Basics

Page 23: Introduction to WPF

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 elements23

Page 24: Introduction to WPF

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 name24

Page 25: Introduction to WPF

XAML Basics - Example Constructs button with caption "OK"

25

<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>

Page 26: Introduction to WPF

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

26

Page 27: Introduction to WPF

XAML SyntaxLive Demo

Page 28: Introduction to WPF

What is XAML?

Page 29: Introduction to WPF

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)

Page 30: Introduction to WPF

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

30

Page 31: Introduction to WPF

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)

31

Page 32: Introduction to WPF

Property Elements

Page 33: Introduction to WPF

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

33

<Ellipse> <Ellipse.RenderTransform> <RotateTransform Angle="45" CenterY="60" /> </Ellipse.RenderTransform></Ellipse>

A property element

Page 34: Introduction to WPF

Property ElementsLive Demo

Page 35: Introduction to WPF

Declarative vs. Programmatically?

Why we need XAML?

Page 36: Introduction to WPF

Declarative vs. Programmatically In WPF/Silverlight each 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<Button Content="Click me!"/>

Button button=new Button();button.Content="Click me!";

With XAML

From Code Behind

Page 37: Introduction to WPF

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()

Page 38: Introduction to WPF

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

Page 39: Introduction to WPF

Declarative or Programmatically?

Live Demo

Page 40: Introduction to WPF

Questions?

Introduction to XAML