Title: Windows Presentation Foundation avanc Partie 1
1Windows Presentation Foundation avancé Partie 1
- Mitsuru FURUTA Microsoft France
- Relations techniques développeurs
- mitsufu_at_microsoft.com http//blogs.microsoft.fr/
mitsufu - Thomas LEBRUN
- MVS et formateur au laboratoire .Net
- Lebrun_thomas_at_hotmail.com http//morpheus.develo
ppez.com
2Sommaire
- Les Contrôles WPF
- Les Ressources
- Les Styles
- Les Templates
- Les Triggers
- Les Animations
- Les Transformations
- Le Texte
- Le Binding
- Les Applications Navigateurs
- WPF et la 3D
- Interop WPF/WindowsForms
3Les contrôles WPF
- La plupart des contrôles WindowsForms classiques
sont disponibles avec WPF - Ils possèdent plusieurs caractéristiques
- Propriétés
- Evènements
- Méthodes
- DataBinding
- Grâce à la propriété Content, on peut
personnaliser le contenu dun contrôle - Un contrôle WPF ne contiendra plus seulement
- que du texte mais pourra également contenir
- dautres contrôles
- Les contrôles WPF peuvent donc être décomposés
sous - sous forme de graphes dobjets
- Possibilité de créer des UserControl
4Les ressources
- La propriété Resources permet de définir les
ressources qui seront utilisables par votre
contrôle - Les ressources peuvent être locales (liées à un
contrôle précis) ou globales (liées à un contrôle
parent et utilisable par tout les contrôles
enfants) - Par ressource, on entend
- Les Styles
- Les Templates
- Les Animations
- Les Transformations
- Les sources de données
- Etc
5Les styles
- Inspiré des styles utilisé dans le développement
Web, les CSS - On définit les styles pour un type de contrôle
- Les styles vous permettent de définir lapparence
visuelle de vos contrôles - Vous définissez vos styles dans les ressources de
votre contrôle
ltStyle TargetType"xType Button"
xKey"MonStyleDePolice"gt ltSetter
Property"Button.FontStyle" Value"Italic"
/gt ltSetter Property"Button.FontWeight"
Value"Bold" /gt ltSetter Property"Button.Foregrou
nd" Value"Red" /gt lt/Stylegt
6Les templates
- Les Templates définissent la structure de vos
contrôles - Vous allez donc pouvoir modifier la façon dont un
contrôle affiche son contenu - Les DataTemplate sont utilisés pour définir la
représentation visuelle dun objet de données un
objet de type Photo pourra être représenté
visuellement - Utilisation des éléments ltControlTemplategt et
ltDataTemplategt
7Démo
- Les Contrôles, les Styles et les Templates
8Les triggers
- Les Triggers permettent une meilleure
interactivité entre votre application et
lutilisateur - Ils sont déclenchés lorsquune condition
spécifique est vraie - Les EventTrigger seront les plus utilisés
- Le Trigger se déclenche lorsque lévènement
indiqué survient - Ils sont utilisés avec les Styles et les
Templates
ltStyle.Triggersgt ltTrigger Property"IsMouseOver"
Value"True"gt ltSetter Property"Button.Backgroun
d" Value"Red"/gt lt/Triggergt lt/Style.Triggersgt
9Les animations
- StoryBoard Regroupe des animations qui seront
jouées à la demande - Les animations sont utilisées dans des
StoryBoards, au moyen des propriétés - TargetName Indique la cible de votre animation
- TargetProperty Indique quelle propriété
doit-être animée - Les animations sont utilisées pour animer les
propriétés (taille, couleur, etc) des objets
ltDoubleAnimation SpeedRatio"5"
Storyboard.TargetName"m_BoutonAnime"
Storyboard.TargetProperty"Width" From"0"
To"200" /gt
10Les transformations
- Utilisées pour donner plus de vie à vos
applications - Permettent de transformer le rendu graphique dun
contrôle - Egalement utilisées dans des StoryBoards grâce
aux propriétés TargetName et TargetProperty - Plusieurs types sont disponibles
- TranslateTransform Effectue une translation dun
contrôle - RotateTransform Exécute la rotation dun
contrôle - ScaleTransform Redimensionnement dun contrôle
- MatrixTransform Permet de créer vos propres
transformations - Vous pouvez tout à fait animer vos
transformations !
11Le texte
- WPF utilise un affichage vectoriel pour un rendu
idéal - Il existe de nombreux contrôles pour afficher du
texte - Label
- TextBlock
- TextBox
- Etc..
- On peut modifier certaines propriétés pour
changer le rendu - FontFamily Type de la police
- FontSize Taille de la police
- FontStyle Style de la police (italique, oblique,
etc) - Certaines classes offertes par WPF permettent
dafficher et de formater du texte, en utilisant
des fonctions avancées telles que la pagination,
la gestion des colonnes, la recherche de texte,
etc.. - FlowDocument
- FlowDocumentReader
- FlowDocumentPageViewer
- Etc..
12Démo
- Les Triggers, les animations, les transformations
et le texte
13Le binding
- Avec WPF, la propriété DataSource nexiste plus
elle est remplacée par la propriété DataContext - DataContext Concept qui autorise les éléments
enfants à hériter de linformation de lélément
parent - Classe Binding
- ElementName Spécifie quel contrôle sera la
source de vos données - Path Indique quelle propriété utiliser pour
effectuer le Binding - XPath Indique la requête XPath a effectuer sur
la source de données (par exemple si vous
utilisez un XmlDataProvider)
14Le binding (2)
- Si le Binding relie deux propriétés du même type,
il ny a aucun problèmes. - Cependant, si les types sont différents (vous
souhaitez par exemple lier une image à litem
sélectionné dans une ListBox), vous devez
utiliser un Converter - On doit alors implémenter linterface
IValueConverter qui propose les méthodes - Convert Convertit un objet dans un type donné
- ConvertBack Conversion dans le sens inverse
15Démo
16Démo
- Cas pratique Et si on mixait un peu tout ça ?
17Les applications navigateur
- Xaml Browser Applications
- Exécution en ligne uniquement, au travers dun
navigateur Internet - Aucune installation nest nécessaire
- Déploiement via ClickOnce
- Ne nécessite que le Runtime WinFX
- Ces applications sexécutent dans un SandBox
(bac à sable) - Il sagit dun contexte sécurisé
- Permet de navoir aucun prompt/avertissement de
sécurité au niveau du déploiement/de lexécution
18Les applications navigationnelles
- Applications proposant des classes permettant la
navigation au sein de lapplication - NavigationWindow
- Page
- PageFunction
- Elles permettent également de conserver un
historique des pages visitées dans lapplication - Il existe 2 catégories dapplications de ce type
- Les Xaml Browser Applications (.xbap)
- Les applications autonomes (WindowsForms)
19Démo
- Les applications navigateurs et les applications
navigationnelles
20WPF et la 3D
- Viewport3D Conteneur 2D pour des
graphismes/contrôles 3D - Pour définir ce que lon va afficher, on utilise
un modèle ModelVisual3D - On utilise une caméra pour visualiser le modèle
en 3D - On spécifie sa position, sa direction, son angle
de vision - On pourra animer cette caméra pour donner
limpression de bouger autour du modèle
21Démo
22Interop WPF/WindowsForms
- Nom de code du projet CrossBow
- But Utiliser des contrôles WPF dans une
application WindowsForms et inversement - Utilisation de lassembly WindowsFormsIntegration.
dll - Contrôles WPF dans une applications WindowsForms
- Utilisation dun contrôle ElementHost
- Contrôles WindowsForms dans une application WPF
- Utilisation dun contrôle WindowsFormsHost
- Il existe cependant des contraintes (telle que
lutilisation de la transparence) quil faut
prendre en compte
23Démo