Windows Presentation Foundation Fabio Santini [email protected] [email protected] .

35
Windows Presentation Foundation Fabio Santini [email protected] http://blogs.msdn.com/fabiosantini

Transcript of Windows Presentation Foundation Fabio Santini [email protected] [email protected] .

Page 1: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

Windows Presentation FoundationFabio [email protected]://blogs.msdn.com/fabiosantini

Windows Presentation FoundationFabio [email protected]://blogs.msdn.com/fabiosantini

Page 2: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

Agenda

Per iniziarePer iniziare

Introduzione a Windows Presentation Introduzione a Windows Presentation FoundationFoundation

Come funziona ?Come funziona ?

Cos’è XAML ?Cos’è XAML ?

Interactive Designer (Sparkle)Interactive Designer (Sparkle)

Come migrare ?Come migrare ?

EsempiEsempi

Page 3: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

Per iniziare …http://msdn.microsoft.com/windowsvishttp://msdn.microsoft.com/windowsvista/getthebeta/default.aspxta/getthebeta/default.aspx

Microsoft Pre-Release Software WinFX Runtime Microsoft Pre-Release Software WinFX Runtime Components - January Community Technology Components - January Community Technology Preview (CTP) (2.4 Mb)Preview (CTP) (2.4 Mb)

Visual Studio 2005 Visual Studio 2005 (anche se si può fare tutto (anche se si può fare tutto a manina)a manina)

Microsoft® Windows® Software Development Kit Microsoft® Windows® Software Development Kit (SDK) for the January 2006 WinFX® Runtime (SDK) for the January 2006 WinFX® Runtime Components Community Technology Preview Components Community Technology Preview (CTP) (1081.8 MB)(CTP) (1081.8 MB)

Microsoft Visual Studio Code Name “Orcas” Microsoft Visual Studio Code Name “Orcas” Community Technology Preview - Development Community Technology Preview - Development Tools for WinFX® (3.6 Mb)Tools for WinFX® (3.6 Mb)

Page 4: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

Per iniziare …Se non funziona il setupSe non funziona il setup

Provate a disinstallare Microsoft Provate a disinstallare Microsoft Command Shell (Monad) e il Compact Command Shell (Monad) e il Compact Framework 2.0Framework 2.0

Eseguire il setup chiedendo un log più Eseguire il setup chiedendo un log più completo completo Setup.exe -l*vSetup.exe -l*v

Se non funziona l’elemento Se non funziona l’elemento MediaElementMediaElement

E’ probabile che il setup non sia riuscito a E’ probabile che il setup non sia riuscito a sostiture due dll sostiture due dll dxva2.dlldxva2.dll (DirectX Video (DirectX Video Acceleration 2.0) e Acceleration 2.0) e evr.dllevr.dll (Enhanced (Enhanced Video Renderer)Video Renderer)

http://www.fsantini.net/default.aspxhttp://www.fsantini.net/default.aspx

Page 5: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

La nostra prima La nostra prima applicazioneapplicazione

Page 6: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

Element SystemElement System

Font SystemFont System

Input SystemInput System

Event SystemEvent System

Property SystemProperty System

Visual SystemVisual System

Composition SystemComposition System

TransportTransport

• Styles, bindings, Styles, bindings, controlscontrols• LayoutLayout• Text layout (PTS)Text layout (PTS)

• GlyphsGlyphs• MetricsMetrics• CacheCache

• Mouse, Keyboard, Mouse, Keyboard, PenPen• CommandsCommands

• Video, AudioVideo, Audio• 2D, 3D, 2D, 3D, AnimationAnimation• Text layout (line)Text layout (line)

• RoutingRouting• Class handlersClass handlers

• Change Change notificationnotification• StorageStorage• ExpressionsExpressions

• RemotingRemoting• Message basedMessage based

• 2D, 3D2D, 3D• Hardware, Hardware, SoftwareSoftware

Page 7: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

Step 1: Step 1:

Scriviamo il programmaScriviamo il programma

Page 8: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

<ListBox><ListBox>

<Button /><Button />

<Button /><Button />

</ListBox></ListBox>

Page 9: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

Step 2: CompiliamoStep 2: Compiliamo

Page 10: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001011101001

Page 11: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

BAMLBAML

C#/VB/etcC#/VB/etcEXEEXE

Images, etcImages, etc

Page 12: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

Step 3: Step 3:

Eseguiamo il Eseguiamo il programmaprogramma

Page 13: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

Step 4: Step 4:

Mostriamo i pixelMostriamo i pixel

Page 14: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

ListBoxListBox

ButtonButton ButtonButton

ScrollViewerScrollViewer

StackPanelStackPanel

RenderRenderMeasure & ArrangeMeasure & Arrange

Page 15: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

CompNodeCompNode

CompNodeCompNode CompNodeCompNode CompNodeCompNode

Page 16: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

CompNodeCompNode

CompNodeCompNodeCompNodeCompNode CompNodeCompNode

ListBoxListBox

ButtonButton ButtonButton

ScrollViewerScrollViewer

StackPanelStackPanel

TransportTransport

UI ThreadUI Thread Render ThreadRender Thread

Page 17: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

DX SurfacesDX Surfaces

BitmapsBitmaps

CompNodeCompNode

CompNodeCompNodeCompNodeCompNode CompNodeCompNode

Page 18: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

Step 5: Step 5:

Comunichiamo con Comunichiamo con l’utentel’utente

Page 19: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

ListBoxListBox

ButtonButton ButtonButton

ScrollViewerScrollViewer

StackPanelStackPanel

Mouse Click!Mouse Click!

CompNodeCompNode

CompNodeCompNodeCompNodeCompNode CompNodeCompNode

1.1. User32 gets the messageUser32 gets the message

2.2. WPF converts message to an input reportWPF converts message to an input report

3.3. If input report is a mouse move…If input report is a mouse move…

• Structural hit testing on visualsStructural hit testing on visuals

• Geometry hit testing through geometry Geometry hit testing through geometry datadata

4.4. Convert reports into one or more eventsConvert reports into one or more events

5.5. For each event… For each event…

• Build event routeBuild event route

• Raise eventsRaise events

Page 20: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

Step 6: Step 6:

Utilizziamo gli elementiUtilizziamo gli elementi

Page 21: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

Step 7: Step 7: Ritorniamo al punto 4Ritorniamo al punto 4

(ricordate: Mostriamo i pixel)(ricordate: Mostriamo i pixel)

Page 22: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

Usiamo XAMLUsiamo XAML

Page 23: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

Come migrare ?

Integrazione tra i due mondiIntegrazione tra i due mondi

Un nuovo modo di pensare alle Un nuovo modo di pensare alle interfacceinterfacce

Page 24: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .
Page 25: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .
Page 26: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .
Page 27: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .
Page 28: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .
Page 29: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .
Page 30: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .
Page 31: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .
Page 32: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .
Page 33: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .
Page 34: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .
Page 35: Windows Presentation Foundation Fabio Santini fsantini@microsoft.com  fsantini@microsoft.com .

© 2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.