SlideShare a Scribd company logo
WPF basics
Ingegnerizzare il vostro business per massimizzarne il valore: 
realizziamo con voi e per voi soluzioni innovative per 
ottimizzare il vostro lavoro. 
sistemi informativi adatti alle esigenze del cliente, per ottimizzare e massimizzare il 
lavoro. Soluzioni attente alle ultime innovazioni tecnologiche e alla user experience 
dell’utente finale. 
siti dinamici ed applicativi web per il professionista, le aziende e la pubblica 
amministrazione, implementati con tecnologia JoshuaCMS© per una maggiore 
flessibilità e fruibilità della gestione dei contenuti del sito 
formazione e framework per aziende e professionisti che vogliono approfondire le 
proprie conoscenze e innovare i propri prodotti con le ultime realtà tecnologiche del 
mondo .Net
WPF – basics 
13° Workshop DotNet Marche
Agenda 
Da Windows Forms a WPF 
Il ruolo di XAML 
DependencyProperties e Data Binding
Da Windows Forms a WPF
Da Windows Forms a WPF 
Nuovi tipi di contenuti da presentare 
Necessità di nuovi strumenti di programmazione 
Dividere la parte “Grafica” dalla parte “Applicativa” dello 
sviluppo 
Unificare differenti tecnologie 
Applicare la conoscenza e acquisita grazie al Web anche a 
Windows Forms.
Da Windows Forms a WPF 
Cosa ha in comune WPF con Windows Forms ?? 
NIENTE !! 
Nuovo linguaggio di programmazione “Funzionale” allo 
sviluppo di grafica. (XAML) 
Nuovo modello ad oggetti per rappresentare la UI 
Nuovo propagazione degli eventi 
Nuovo modello di gestione dei comandi 
Nuovo modello di binding 
… etc etc… 
Sfrutta le caratteristiche della scheda grafica 
(Direct X)
WPF – eXtensible Application Markup Language 
Linguaggio dichiarativo funzionale allo sviluppo della 
interfaccia utente 
Posso : 
Dichiarare oggetti e creare oggetti 
Sottoscrivere eventi 
Impostare Proprietà 
Manipolare Dati 
Invocare Metodi 
… 
Tutto quello che posso fare in XAML lo posso fare in C#
WPF – eXtensible Application Markup Language 
Creare Grafica Vettoriale 2D 
Creare Grafica Vettoriale 3D 
Dichiarare camere, luci, primitive, textures, etc…. 
Creare Animazioni 2D ed Animazioni 3D 
Utilizzare Stili e Templates per dichiarare la grafica degli 
oggetti.
XAML in pratica
XAML vs Code 
<Button Height="23" 
HorizontalAlignment="Left" 
Margin="52,63,0,0" 
Name="button1" 
VerticalAlignment="Top" 
Width="75">Ok</Button> 
Instanzia un 
oggetto di tipo 
“Button” 
Assegna valori 
alle proprietà 
dell’oggetto 
Inserisce il “Contenuto” 
dell’oggetto
Namespace 
Come fa il parser XAML a “trovare” le classi 
corrispondenti agli oggetti da instanziare ? 
Attraverso un mapping dei namespace 
Nella dichiarazione dell’oggetto, oppure 
Nella dichiarazione del root object 
I namespaces di default sono: 
http://schemas.microsoft.com/winfx/2006/xaml/presentation 
http://schemas.microsoft.com/winfx/2006/xaml
La proprietà content 
<Button Height="23“ Margin="52,63,0,0“ 
Name="button1" Width="75“> 
<Button.Content> 
<MediaElement 
Margin="0,0,0,0“ 
Name="mediaElement1“ 
Height="50" 
Width="50“ 
Source=“c:myvideo.avi” /> 
</Button.Content> 
</Button> 
Content è di 
tipo 
System.Object
Type Converters 
I Type converters sono classi che aiutano la conversione 
di valori di proprietà nel tipo appropriato 
Es: 
<Button Margin="52,63,0,0“ /> 
L’oggetto Button nella sua proprietà “Margin” accetta 
un oggetto di tipo Thickness. 
In xaml scriviamo una serie di valori numerici in 
formato di stringa.
Type Converters 
Il parser Xaml si occupa di cercare un convertitore appropriato 
per ogni tipo. 
L’attributo TypeConverterAttribute permette di indicare il 
convertitore custom per un tipo custom 
Per trovare il convertitore di un tipo di oggetto devo utilizzare 
il metodo GetConverter della classe TypeDescriptor 
Tutti i convertitori ereditano ed estendono TypeConverter
Markup Extensions 
Sono strutture che estendono le potenzialità di xaml 
Ogni markup extension deriva dalla classe 
MarkupExtension 
Possiamo ereditare la classe MarkupExtension per 
creare nostre estenzioni 
Il parser xaml considera markup extension tutti i valori 
di proprietà che sono racchiusi in { } 
Molto utilizzato per il binding. 
Es: 
<Button Background=“{x:Null}”/>
DataBinding in pratica….
WPF basics

More Related Content

PPTX
WPF 4 fun
PPT
WPF
PPT
WCF RIA SERVICE - Evento 1nn0va 2010
PDF
SEEDBLE - WORKSHOP FINANCE
PDF
12o Estudio de Hábitos del Internauta Mexicano 2016
PPT
Iuavcamp presentazione
PPT
Iuavcamp presentazione
PPT
Presentazione GstarCAD
WPF 4 fun
WPF
WCF RIA SERVICE - Evento 1nn0va 2010
SEEDBLE - WORKSHOP FINANCE
12o Estudio de Hábitos del Internauta Mexicano 2016
Iuavcamp presentazione
Iuavcamp presentazione
Presentazione GstarCAD

Viewers also liked (17)

KEY
Mongo and node mongo dc 2011
PDF
Rivista Magazine free on-line CAD 2D and 3D - Settembre 2014 n° 4
PPTX
Virtualizzazione postazioni grafiche - 3D.ITA Sinthera
PDF
Curriculum Vitae
PDF
Taller de redes sociales para empresas
PDF
Gropius e il Bauhaus - Storia dell'Architettura Contemporanea
PDF
Heritage o Historic BIM? La modellazione informativa per il patrimonio storic...
PPTX
UI Composition
PPT
Introduzione WPF
PPTX
Coordinamento e progettazione integrata: dal bim execution plan alla creazion...
PDF
How Your Global Company Can Change The World
PDF
31 Quotes To Celebrate Teamwork and Collaboration
PDF
IQ Work Hacks : Verbal communication
PDF
10 Best Practices of a Best Company to Work For
PDF
Bill Aulet GEC2016 keynote speech March 16 2016 Medellin Colombia
PDF
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
Mongo and node mongo dc 2011
Rivista Magazine free on-line CAD 2D and 3D - Settembre 2014 n° 4
Virtualizzazione postazioni grafiche - 3D.ITA Sinthera
Curriculum Vitae
Taller de redes sociales para empresas
Gropius e il Bauhaus - Storia dell'Architettura Contemporanea
Heritage o Historic BIM? La modellazione informativa per il patrimonio storic...
UI Composition
Introduzione WPF
Coordinamento e progettazione integrata: dal bim execution plan alla creazion...
How Your Global Company Can Change The World
31 Quotes To Celebrate Teamwork and Collaboration
IQ Work Hacks : Verbal communication
10 Best Practices of a Best Company to Work For
Bill Aulet GEC2016 keynote speech March 16 2016 Medellin Colombia
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
Ad

Similar to WPF basics (20)

PPT
WPF & LINQ: VB T&T Community After Hour @ Microsoft Days 08
PDF
Slide Prelaurea. Alessandro Andreosè
PDF
WPF MVVM Toolkit
PDF
Presentazione corso wpf_vicenzasoftware
PDF
WPF MVVM Toolkit
PDF
Tesi Laurea Specialistica Ingegneria Informatica. Alessandro Andreosè
PPTX
m-v-vm @ UgiAlt.Net
PPTX
Developing appealing application using xaml
PDF
Il pattern mvvm come strutturare al meglio il vostro progetto
PPTX
UI Composition - Prism
PPTX
Silverlight m v-vm @ DotNetteria
PPTX
Silverlight 4 - Community Tour (RTM)
PDF
{Community} Launch Wpf
PPTX
VS Package @ CD2008
PPTX
Xaml su Xamarin
PDF
2010.05.21 introducing sql server modeling
PPTX
Data binding for dummies - Microsoft publish 2014
PPTX
Xamarin forms
PPTX
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM
PPTX
Win8@work - Windows 8 e MVVM
WPF & LINQ: VB T&T Community After Hour @ Microsoft Days 08
Slide Prelaurea. Alessandro Andreosè
WPF MVVM Toolkit
Presentazione corso wpf_vicenzasoftware
WPF MVVM Toolkit
Tesi Laurea Specialistica Ingegneria Informatica. Alessandro Andreosè
m-v-vm @ UgiAlt.Net
Developing appealing application using xaml
Il pattern mvvm come strutturare al meglio il vostro progetto
UI Composition - Prism
Silverlight m v-vm @ DotNetteria
Silverlight 4 - Community Tour (RTM)
{Community} Launch Wpf
VS Package @ CD2008
Xaml su Xamarin
2010.05.21 introducing sql server modeling
Data binding for dummies - Microsoft publish 2014
Xamarin forms
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM
Win8@work - Windows 8 e MVVM
Ad

More from DotNetMarche (20)

PDF
Creare una community dal basso ed arrivare ad un'azienda milionaria - Emanue...
PDF
Metriche per Zombie Communities: come "iniettare vita" in tribù di morti vive...
PPTX
Model-View-ViewModel
PPTX
Refactoring ASP.NET and beyond
PDF
Refactoring 2TheMax (con ReSharper)
PPT
jQuery Loves You
PPTX
Silverlight in Action
PPTX
Silverlight in Action
PPTX
Open XML & MOSS
PPTX
Soluzioni Microsoft per l'e-Learning
PDF
Installing and Administering MOSS
PPTX
Microsoft SharePoint Server 2007 Technical Overview
PPTX
[Hands on] testing asp.net mvc
PPTX
Asp.NET MVC Framework
PPTX
Introduzione al Testing
PPTX
Introduzione a CardSpace
PPTX
Introduzione a Workflow Foundation
PPTX
Domain Model e SOA (Service Oriented Architecture)
PPTX
Introduzione al Domain Driven Design (DDD)
PPT
Esempi pratici
Creare una community dal basso ed arrivare ad un'azienda milionaria - Emanue...
Metriche per Zombie Communities: come "iniettare vita" in tribù di morti vive...
Model-View-ViewModel
Refactoring ASP.NET and beyond
Refactoring 2TheMax (con ReSharper)
jQuery Loves You
Silverlight in Action
Silverlight in Action
Open XML & MOSS
Soluzioni Microsoft per l'e-Learning
Installing and Administering MOSS
Microsoft SharePoint Server 2007 Technical Overview
[Hands on] testing asp.net mvc
Asp.NET MVC Framework
Introduzione al Testing
Introduzione a CardSpace
Introduzione a Workflow Foundation
Domain Model e SOA (Service Oriented Architecture)
Introduzione al Domain Driven Design (DDD)
Esempi pratici

WPF basics

  • 2. Ingegnerizzare il vostro business per massimizzarne il valore: realizziamo con voi e per voi soluzioni innovative per ottimizzare il vostro lavoro. sistemi informativi adatti alle esigenze del cliente, per ottimizzare e massimizzare il lavoro. Soluzioni attente alle ultime innovazioni tecnologiche e alla user experience dell’utente finale. siti dinamici ed applicativi web per il professionista, le aziende e la pubblica amministrazione, implementati con tecnologia JoshuaCMS© per una maggiore flessibilità e fruibilità della gestione dei contenuti del sito formazione e framework per aziende e professionisti che vogliono approfondire le proprie conoscenze e innovare i propri prodotti con le ultime realtà tecnologiche del mondo .Net
  • 3. WPF – basics 13° Workshop DotNet Marche
  • 4. Agenda Da Windows Forms a WPF Il ruolo di XAML DependencyProperties e Data Binding
  • 6. Da Windows Forms a WPF Nuovi tipi di contenuti da presentare Necessità di nuovi strumenti di programmazione Dividere la parte “Grafica” dalla parte “Applicativa” dello sviluppo Unificare differenti tecnologie Applicare la conoscenza e acquisita grazie al Web anche a Windows Forms.
  • 7. Da Windows Forms a WPF Cosa ha in comune WPF con Windows Forms ?? NIENTE !! Nuovo linguaggio di programmazione “Funzionale” allo sviluppo di grafica. (XAML) Nuovo modello ad oggetti per rappresentare la UI Nuovo propagazione degli eventi Nuovo modello di gestione dei comandi Nuovo modello di binding … etc etc… Sfrutta le caratteristiche della scheda grafica (Direct X)
  • 8. WPF – eXtensible Application Markup Language Linguaggio dichiarativo funzionale allo sviluppo della interfaccia utente Posso : Dichiarare oggetti e creare oggetti Sottoscrivere eventi Impostare Proprietà Manipolare Dati Invocare Metodi … Tutto quello che posso fare in XAML lo posso fare in C#
  • 9. WPF – eXtensible Application Markup Language Creare Grafica Vettoriale 2D Creare Grafica Vettoriale 3D Dichiarare camere, luci, primitive, textures, etc…. Creare Animazioni 2D ed Animazioni 3D Utilizzare Stili e Templates per dichiarare la grafica degli oggetti.
  • 11. XAML vs Code <Button Height="23" HorizontalAlignment="Left" Margin="52,63,0,0" Name="button1" VerticalAlignment="Top" Width="75">Ok</Button> Instanzia un oggetto di tipo “Button” Assegna valori alle proprietà dell’oggetto Inserisce il “Contenuto” dell’oggetto
  • 12. Namespace Come fa il parser XAML a “trovare” le classi corrispondenti agli oggetti da instanziare ? Attraverso un mapping dei namespace Nella dichiarazione dell’oggetto, oppure Nella dichiarazione del root object I namespaces di default sono: http://schemas.microsoft.com/winfx/2006/xaml/presentation http://schemas.microsoft.com/winfx/2006/xaml
  • 13. La proprietà content <Button Height="23“ Margin="52,63,0,0“ Name="button1" Width="75“> <Button.Content> <MediaElement Margin="0,0,0,0“ Name="mediaElement1“ Height="50" Width="50“ Source=“c:myvideo.avi” /> </Button.Content> </Button> Content è di tipo System.Object
  • 14. Type Converters I Type converters sono classi che aiutano la conversione di valori di proprietà nel tipo appropriato Es: <Button Margin="52,63,0,0“ /> L’oggetto Button nella sua proprietà “Margin” accetta un oggetto di tipo Thickness. In xaml scriviamo una serie di valori numerici in formato di stringa.
  • 15. Type Converters Il parser Xaml si occupa di cercare un convertitore appropriato per ogni tipo. L’attributo TypeConverterAttribute permette di indicare il convertitore custom per un tipo custom Per trovare il convertitore di un tipo di oggetto devo utilizzare il metodo GetConverter della classe TypeDescriptor Tutti i convertitori ereditano ed estendono TypeConverter
  • 16. Markup Extensions Sono strutture che estendono le potenzialità di xaml Ogni markup extension deriva dalla classe MarkupExtension Possiamo ereditare la classe MarkupExtension per creare nostre estenzioni Il parser xaml considera markup extension tutti i valori di proprietà che sono racchiusi in { } Molto utilizzato per il binding. Es: <Button Background=“{x:Null}”/>