Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

Découvrir Windows Presentation Foundation

Comprendre la relation entre XAML et .NET

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Découvrez comment XAML est compilé en binaire dans un fichier BAML pour assurer de bonnes performances. Voyez aussi comment il permet d'instancier des objets .NET de façon déclarative afin de créer une interface graphique ou de définir des objets.
07:40

Transcription

J'ai un peu agrandi l'affichage pour qu'on se concentre sur la définition de notre XAML. Donc, maintenant c'est acté. On a compris que le XAML est une façon déclarative, sous forme de xml, de définir des objets .NET, finalement. Là pour une interface, mais ce qui va être créé derrière, ce sont des objets qui sont Grid, Button, Window, etc. Vous pourriez vous demander d'ailleurs "Bon, mais c'est lent cette histoire, parce que je vais définir une interface en xml, le xml, c'est lent, il faut le parser, ça va donc ralentir mon interface graphique. Et bien non parce que bien entendu, ceci est compilé. Si vous regardez au niveau du projet, je prends mon projet SQL Trismegiste qui est là que j'ai déjà compilé une fois, au moins. Donc voici mon source. Voici mon répertoire bin dans lequel se trouvent les binaires compilés et liés. Ici, j'ai l'exécutable. Donc une assembly. Et je reviens ici. J'ai le répertoire objet pour tous les fichiers intermédiaires de la compilation. À l'intérieur, J'ai une compilation de debug, je vais retrouver un MainWindow ici qui correspond donc à mon MainWindow.xaml dont j'ai la source ici. Et bien là, ce n'est plus du XAML, c'est du BAML, c'est du XAML binarisé. À la compilation, le compilateur .NET, a donc créé un fichier intermédiaire, tout ceci a été binarisé et ensuite on le lit à l'application de façon à ce qu'il n'y ait plus aucun problème de performance dû à la définition. La définition a disparu. On a généré du code à partir de ça. C'est le principe de tous les langages déclaratifs. On déclare quelque chose et derrière un outil ou un compilateur passe et génère du code avec ça. Donc pas de problèmes de performance. Donc ici, je vais déclarer des objets et si on y regarde de plus près, je déclare un objet, il va être instancié avec d'ailleurs un appel de son constructeur par défaut, Et puis, on a rajouté ici des attributs à cet élément. C'est élément, c'est d'ailleurs ce qu'on va appeler un élément d'objet, un object element, puisque cet élément définit un objet. Et ensuite, on ajoute des attributs. Ces attributs correspondent, vous vous en doutez, à des propriétés de l'objet. Donc on a ce qu'on appelle des attributs de propriétés. On peut aussi, et on va le voir, ajouter des attributs d'événements pour définir ici des gestionnaires d'événements Et où ça mène tout ça ? J'ai mon objet Wwindow. Donc mon élément d'objet Window qui lui comporte des propriétés mais également des définitions d'espaces de nom, donc de name space comme on a l'habitude d'en avoir en xml. Ici, j'ai réduit à peu près au minimum en mettant les deux name spaces nécessaires pour faire fonctionner XAML plus le name space local qui a aussi été créé. Ceci, vous connaissez xml, xmlns pour définition de name space xml, ensuite on peut mettre ici optionnellement un alias, Et donc, celui-ci n'ayant pas l'alias, c'est le name space par défaut. Cette URI qui n'existe chez Microsoft, ce n'est pas une URL c'est une URI, donc un nom unique pour identifier le name space. Cette URI représente la couche de présentation de XAML. Vous voyez qu'on n'est pas à la racine de XAML, on est dans présentation. Et on a créé un name space avec un alias x pour XAML lui-même. Bon, pourquoi on a fait ça ? Finalement, présentation, puisque le name space n'est pas préfixé, c'est ça, c'est ça, c'est ça, c'est donc tout ce qui est dans la couche XAML des contrôles habituels de présentation. Mais, comme on va les utiliser tout le temps, ce serait dommage de faire un préfixe pour ceci. Je devrais le réutiliser ici, ici, ici, ici, enfin bref. Donc Microsoft a décidé de ne pas préfixer ce name space parce que c'est le plus utilisé. Ensuite, les fonctionnalités de base de XAML sont préfixées par x parce qu'on les utilise un peu moins souvent. Et x, ça nous donne quoi ? Et bien le nom, au niveau XAML, de l'objet, et puis très peu de choses, finalement, l'Uid, un identifiant qu'on peut également utiliser. Voilà pour mes deux name spaces de base. Et puis, il y a un name space supplémentaire qui est préfixé par local et qui a une syntaxe un peu particulière, comme vous pouvez le voir. Et cette syntaxe, c'est un peu un détournement de l'URI du name space xml, parce qu'il a un sens, il va être compris par XAML. Je dis "Il s'agit d'un name space clr." À partir de ce moment-là, donc clr, Common Langage Runtime .NET, ici, je dis à XAML que ce que je donne comme name space, c'est quelque chose qui est un name space qui vient de mon code .NET sous-jacent ou à côté, si vous voulez. Si je vais dans mon code behind, j'ai ici mon name space sqltrismegiste qui a été défini. Et sur mon XAML, et bien, il fait référence. Je vais pouvoir faire référence à un name space qui vient de mon code .NET pour pouvoir l'utiliser de façon déclarative. Je vais vous montrer. On va faire, quelque chose de pas très beau d'ailleurs, je vais faire une classe, ici, que je vais appeler "Coucou" et que je vais faire dériver de Content Control. Je vais lui ajouter une propriété que je vais appeler "Salutation", si j'ai fait coucou, hein. Alors je dis que c'est une string, et puis je vais mettre getter et setter, une toute petite classe de rien du tout. Maintenant, je suis ici. J'ai mon name space local à disposition qui représente le name space sqltrismegiste dans lequel j'ai une classe public en plus qui dérive de Content Control, et, qu'est-ce que je vais faire ? Ici, à l'intérieur de ma grille, je vais l'ajouter. Ça n'a pas beaucoup de sens parce qu'il n'y a rien dedans, mais c'est pour vous montrer. Donc je pars de local, ensuite j'ai mon Coucou à disposition, et voilà, je viens de déclarer un élément d'objet à l'intérieur de mon XAML. Et je vais pouvoir lui ajouter, toujours du même name space, la propriété Salutation et je vais lui mettre quelque chose, un "hello". Et donc, je définis une instance de ma classe. Et je lui attribue une valeur dans sa propriété. Et lorsque je vais exécuter mon code, et bien j'aurai instancié une instance de ma classe Coucou, je lui aurai attribué la valeur dans sa propriété, tout cela de façon déclarative. C'est ça la richesse des capacités de XAML.

Découvrir Windows Presentation Foundation

Améliorez la qualité de vos interfaces graphiques avec WPF (Windows Presentation Foundation). Découvrez le langage XAML, définissez votre interface graphique manuellement, etc.

3h12 (40 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :12 mai 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !