Découvrir Windows Presentation Foundation

Découvrir la syntaxe d'éléments de propriétés

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
En plus de la syntaxe d'attribut de propriété, vous pouvez définir les valeurs de propriété plus complexes. Aidez-vous alors de la syntaxe d'élément de propriété.
06:39

Transcription

Nous avons donc parlé des attributs de propriété qui permettent, puisqu'on est dans du xml, à un élément qui correspond à un objet de donner des valeurs de propriété, simplement. Alors, revenons à notre racine qui est un objet de type Window. Cet objet dérive d'un framework element, vous vous souvenez peut-être, et vous vous souvenez peut-être également que la classe Framework Element a une collection qui s'appelle un Resource Dictionary, un dictionnaire de ressources. Donc, dictionnaire : une collection de paires clé-valeur pour attribuer des ressources à un objet. Donc cette collection est une propriété de mon objet et comme j'ai des attributs de propriété, je me dis, pourquoi est-ce que je ne pourrais pas prendre ma propriété ressource, qui est donc ce dictionnaire. Je vais voir dessus, Resource Dictionary, OK, et puis, je vais lui donner une valeur... Mais alors quoi, si je dois faire une valeur qui doit être utilisée par un type converter pour convertir en collection mon dictionnaire. Est-ce possible ? Pourrais-je faire quelque chose comme ça, par exemple ? Avec, j'invente, un point-virgule pour une autre paire clé-valeur. Mais, ça pose pas mal de problèmes parce que la valeur peut être un objet, ça peut être quelque chose de beaucoup plus complexe. Donc, ce qui se passe, c'est que, comme ici Visual Studio me l'indique, le type converter, le convertisseur de type de resource dictionary, donc, de cette propriété, ne prend absolument pas en charge la conversion à partir d'une chaîne. Donc, je ne peux pas travailler comme ça. Comment est-ce que je vais attribuer de façon déclarative, ici, un dictionnaire de ressources à mon objet Window ? Et bien, il y a une deuxième syntaxe qui n'est pas une syntaxe d'attributs de propriété, mais qui est une syntaxe d'éléments de propriété. C'est-à-dire que comme je suis en xml, je peux faire soit des attributs, soit des sous-éléments, et c'est ce que je vais faire ici avec une syntaxe particulière qui dit « OK, dans Window, je rajoute un point. » Et je vais avoir à disposition les propriétés et je vais pouvoir leur donner une valeur sous forme d'éléments au lieu de le faire sous forme d'attributs. Et je vais prendre ressources, ici, et à l'intérieur de ce sous-élément eh bien vous voyez que je vais pouvoir indiquer maintenant différents éléments qui seront chaque fois une paire clé-valeur. Et je vais les faire purement en XAML. Pour tricher un peu ou pour faire quelque chose d'amusant, je me dis que je pourrais mettre une chaîne de caractères comme valeur. Comment est-ce que je vais définir ça ? Attention, c'est juste pour la démo parce que c'est stupide, on va plutôt travailler avec des ressources, mais pour les besoins de la démo, je me dis que je voudrais rajouter une chaîne. Mais est-ce que je peux faire quelque chose comme ça ? Ce que je vous disais, on a des objets, donc est-ce que j'ai des choses comme string, par exemple. Par vraiment à disposition, ce n'est pas dans mon espace de nom. Donc, il faudrait que je me rajoute ici, un espace de nom supplémentaire. Je vais faire ça. xmlns, name space. Je vais dire « Allez je prends clr. » Égal. Et puis, donc vous voyez que j'ai à disposition, grâce à la magie d'IntelliSens un certain nombre d'URI et puis toutes mes assemblies qui sont référencées dans mon projet. Et donc, je vais prendre juste System, parce que string, c'est dans System, et je vois que System est dans l'assembly mscorlib. Ça va nous permettre de voir la syntaxe de déclaration complète d'un name space. clr-namespace: le nom du name space, avec peut-être des points pour faire des namespaces plus complexes si c'est System.quelque chose, point virgule, et si je dois aller chercher ce name space dans une assembly particulière, et bien après le ; je dis « assembly=le nom de l'assembly. » Je me répète, il est évident qu'il faut que ce soit référencé ici, dans les références de mon projet. Si vous avez un tout petit peu l'habitude de VS et de C#, vous avez compris ça. Et donc, je peux l'indiquer ici explicitement. Maintenant, j'ai à disposition le namespace:System et je vais le préfixer ici en clr: et je vais avoir mes types de base, par exemple string. Alors, comment vais-je me débrouiller pour en faire une valeur et une clé ? Parce que je suis dans un dictionnaire de ressources, il faut donc que je fasse une paire clé-valeur. Donc, la valeur, je peux l'indiquer ici. Je vais mettre Bonjour. Et donc, je suis dans une syntaxe où le contenu de string, sa valeur, eh bien, je vais l'indiquer à l'intérieur de l'élément. Je ne suis plus dans une syntaxe d'attribut, je suis dans une syntaxe d'élément. Ensuite, eh bien j'ai un attribut x qui me permet de donner la clé du dictionnaire. Je vais mettre str, par exemple. Et voilà, j'ai défini un objet, une variable, si vous voulez, de type string que j'ai ajoutée à mon dictionnaire de ressources. La clé, c'est str, la valeur étant Bonjour. Je vais remplacer ça. Il ne me reste plus qu'à utiliser ma syntaxe d'extension de mark up, comme ceci, pour dire « Et bien, je vais y faire référence. » Mais alors, comment y faire référence ? Eh bien, je peux utiliser soit une ressource dynamique, soit une ressource statique, c'est le cas ici, et, qu'est-ce que j'ai comme ressource statique ? Et bien str, c'est un peu miraculeux mais c'était dans ma collection de ressources ici, ressources qui sont à disposition ensuite des objets sous-jacents, et donc, puisque je cherche ici une ressource, je fais appel à une ressource dont voilà la clé. Et j'exécute pour vous montrer qu'on a bien un Bonjour. Donc pour résumer, vous pouvez utiliser une syntaxe pour définir vos propriétés, qui est une syntaxe d'élément, qui vous permet de faire quelque chose de plus complexe pour cette propriété, notamment lorsqu'il s'agit d'une collection. Et puis, vous pouvez référencer les namespaces que vous voulez dans les assembly que vous voulez à l'intérieur de votre XAML. Et puis, ensuite vous pouvez utiliser à peu près ce que vous voulez pour définir des valeurs de propriété en utilisant une syntaxe d'extension de mark up.

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 !