Créer une vue murale pour des images avec Silverlight Design

Comme le titre l'indique, nous allons créer un Wallview inspiré par iTunes. Ce didacticiel est divisé en deux parties: l’une pour la conception dans Blend et l’autre pour le code suivant dans Visual Studio..


Aperçu du résultat final

Jetez un coup d’œil à cette démo vidéo du résultat final sur lequel nous allons travailler (ou consultez simplement la démo Web ci-dessus):


introduction

Dans cette partie du didacticiel, nous allons concevoir deux contrôles utilisateur dans Expression Blend. Ce tutoriel semble assez long par rapport au nombre d’étapes, mais c’est parce qu’il est très complet; il y a une explication et une capture d'écran pour presque chaque clic que vous devez faire. La raison pour laquelle je l'ai écrit avec tant de détails est que mes camarades de l'université ont trouvé Blend trop complexe et difficile à utiliser..


Étape 1: créer un nouveau projet dans Visual Studio

Ouvrez Visual Studio et cliquez sur "Fichier"> "Nouveau"> "Projet" dans la barre de menus supérieure..


Étape 2: Configuration

Sélectionnez Silverlight Application Visual C # dans le menu et entrez "WallviewApp" pour un nom de projet en bas ainsi que l'emplacement pour enregistrer le projet..

Après cela, vous verrez un popup. Assurez-vous de cocher la case en bas et de sélectionner Silverlight 4 dans la liste déroulante..


Étape 3: Ouvrez le projet dans le mélange

Démarrez Expression Blend et ouvrez le projet que nous venons de créer dans Visual Studio..

Recherchez le fichier de projet dans le répertoire du projet et ouvrez-le..


Étape 4: Créez deux nouveaux dossiers

Cliquez avec le bouton droit sur le projet WallviewApp dans l'arborescence du projet et choisissez "Ajouter un nouveau dossier". Faites cela deux fois, appelez les dossiers "usercontrols" et "image".


Étape 5: Créer un nouveau UserControl

Cliquez avec le bouton droit sur le dossier "usercontrols" fraîchement créé et sélectionnez "Ajouter un nouvel élément"..

Dans la fenêtre contextuelle, assurez-vous que UserControl est sélectionné et entrez "image.xaml" comme nom..


Étape 6: Créer un StackPanel

Choisissez le conteneur StackPanel dans la barre d’outils qui devrait être sur le côté gauche par défaut…

… Et dessinez un rectangle au milieu de LayoutRoot qui était là depuis le début.


Étape 7: Ajustez le StackPanel

Assurez-vous que StackPanel est sélectionné sur le côté gauche dans le panneau "Objets et chronologie". Sur le côté droit, vous voyez les paramètres de l'élément sélectionné. Changez la largeur et la hauteur en "Auto (0)" en cliquant sur les flèches croisées à côté du champ de texte. HorizontalAlignment to "Center" et VerticalAlignment to "Top". Réinitialisez la marge en cliquant sur l'icône en forme de carré blanc à côté des champs de texte et choisissez Réinitialiser dans le menu. Après cela, réglez la marge supérieure sur "5". Maintenant, le panneau Disposition devrait ressembler à ceci et comme le StackPanel a une taille de 0x0 pixels, vous ne pouvez plus le voir:


Étape 8: Créer une grille

Allez-y et sélectionnez le conteneur Grid dans la barre d’outils sur le côté gauche (où nous avons déjà sélectionné StackPanel) et tracez un autre rectangle au milieu de votre espace de travail..


Étape 9: Ajustez la grille

Examinez le panneau "Objets et chronologie" et assurez-vous que la grille est à l'intérieur de StackPanel. Si ce n'est pas juste cliquez et faites-le glisser dans le StackPanel.

Ajustez les paramètres de disposition pendant que la grille est toujours sélectionnée. Définissez Width et Height sur "200" pixels, Horizontal et VerticalAlignment sur "Stretch" s'ils ne le sont pas déjà..


Étape 10: Créer une bordure

Nous allons maintenant créer une frontière. Vous pouvez le sélectionner comme Grid et StackPanel dans la barre d’outils sur le côté gauche. Dessinez un rectangle avec la bordure et déplacez-le dans la grille s'il ne l'est pas déjà..


Étape 11: Ajustez la couleur et les coins du jeu de bordures

Ouvrez la zone des pinceaux sur le côté droit et modifiez BorderBrush à la couleur suivante: "# 0076A2F9". Définissez ensuite BorderThickness dans le panneau Apparence sur "5" pixels dans les quatre directions et sur CornerRadius sur "5" pixels. Largeur et Hauteur doivent être réglés sur "Auto" en cliquant sur les flèches croisées à côté de la zone de texte. HorizontalAlignment doit être réglé sur "Center" et VerticalAlignment sur "Bottom":


Étape 12: Ajuster la bordure Ajouter une ombre

Nous allons maintenant ajouter un ShadowEffect à la bordure. Cliquez sur le bouton "Nouveau" dans la zone d'apparence juste à côté de l'effet. Dans la prochaine fenêtre, sélectionnez "DropShadowEffect" et cliquez sur "OK".

Ajustez les paramètres de l’ombre qui sont apparus juste en dessous du bouton "Nouveau" en réglant BlurRadius sur "10" et ShadowDepth sur "1":


Étape 13: Importer une image

Nous allons maintenant importer une image dans Blend. Pour ce faire, vous pouvez soit cliquer avec le bouton droit sur le dossier "image" que nous avons créé précédemment et sélectionner "Ajouter un élément existant", soit sélectionner le dossier et y faire glisser une image directement à partir de votre bureau ou de votre explorateur..

Après l'importation, votre arborescence de projet devrait ressembler à ceci:


Étape 14: Utilisez l'image

Pour utiliser l'image dans le contrôle, il vous suffit de la faire glisser du navigateur de projet, où vous l'avez importée, directement dans l'espace de travail. Comme vous pouvez le constater, il est beaucoup trop gros et dans le mauvais conteneur:

Pour résoudre ce problème, nous faisons simplement glisser l'image dans la bordure:


Étape 15: Ajustez l'image

Modifiez la hauteur et la largeur de l'image en "Auto", les alignements horizontal et vertical en "Centre", les marges en "0" et l'étirement en "Uniforme" dans le panneau Propriétés communes:


Étape 16: créer un bloc de texte

Sélectionnez l'outil TextBlock dans la barre d'outils à gauche et créez un TextBlock quelque part dans la zone de travail..

Appuyez sur la touche "Echap" de votre clavier pour annuler la modification du texte à l'intérieur du TextBlock..


Étape 17: Ajustez le TextBlock

Cliquez et faites glisser le TextBlock du panneau "Objets et chronologie" dans le StackPanel créé précédemment..

Après cela, changez la couleur de premier plan en "# FF1F1F1F" et les paramètres de disposition du côté droit sur les valeurs suivantes: Largeur: "Auto", Hauteur: "Auto", HorizontalAlignment: "Centre", VerticalAlignment: "Haut", Marge -Top: "8". Désactivez le texte en cochant le texte "TextBlock" et en le supprimant ou en cliquant sur le carré blanc à côté de lui et en cliquant sur "Réinitialiser". Changez également la police du texte en "Verdana":


Étape 18: Créer un autre bloc de texte

Créez un autre bloc de texte en répétant les étapes 16 et 17, ou en sélectionnant celui que nous avons déjà créé dans le panneau "Objets et chronologie" et en appuyant sur Ctrl + C puis Ctrl + V pour le dupliquer. La seule chose que nous devons faire différemment de l’étape 17 est que nous ne voulons pas qu’une marge soit établie. Si vous avez utilisé la méthode de duplication, définissez simplement la marge supérieure sur "0" ou cliquez sur le petit carré blanc à côté et réinitialisez la marge:


Étape 19: renommer les éléments

Pour pouvoir travailler avec les éléments que nous avons créés jusqu'à présent, nous devons leur donner des noms. Allez-y et renommez le TextBlock tout en bas en "imgDate" en cliquant lentement deux fois ou en cliquant avec le bouton droit de la souris et en sélectionnant "renommer". Changez le nom de l'autre TextBlock en "imgName", l'image en "img", la bordure en "imgBorder" et la grille en "imgSize". Nous en avons terminé avec la conception de ce contrôle et votre hiérarchie devrait ressembler à ceci:

Et le design devrait ressembler à ceci:

Bien sûr, vous ne pouvez pas voir les deux TextBlocks dans votre projet puisque nous avons défini leur texte à néant à quelques étapes précédentes.

Personnellement, je laisse les noms des blocs de texte tant que j'en ai besoin pour terminer la conception avant de les supprimer. De cette façon, vous pouvez contrôler si tout est au bon endroit.


Étape 20: Jetez un coup d’œil au XAML

Si vous voulez jeter un oeil sur le code que nous venons de générer, cliquez sur l'icône "< >"au milieu en haut de la barre de défilement droite de la zone de travail. Pour revenir à la vue Conception cliquez sur l'icône en haut.

Notre code ressemble à ceci:

                

Étape 21: Créez un autre UserControl

Assurez-vous de revenir à la vue de conception.

Créez un autre UserControl dans le dossier "usercontrols" en cliquant dessus avec le bouton droit de la souris et en choisissant "Ajouter un nouvel élément" dans le menu..

Dans la fenêtre, sélectionnez "UserControl" et entrez le nom "wallview-img.xaml":


Étape 22: Créer un ScrollViewer

Choisissez le conteneur ScrollViewer dans la barre d’outils à gauche…

… Et dessinez un rectangle avec celui-ci dans l'espace de travail.


Étape 23: Ajustez le ScrollViewer

Alors que ScrollViewer est sélectionné, inspectez la zone Pinceaux sur le côté droit et réglez BorderBrush sur "Pas de pinceau"..

Définissez BorderThickness sur "0" pour les quatre directions, Horizontal et VerticalAlignment sur "Stretch", la marge supérieure sur "29" pixels et les autres marges sur "0". Contrôlez également si la largeur et la hauteur sont sur "Auto" en cliquant sur les flèches croisées. Développez davantage la zone de mise en page en cliquant sur la petite flèche et définissez les quatre directions de remplissage à "0":


Étape 24: Créer un StackPanel

Sélectionnez le StackPanel dans la barre d’outils à gauche…

… Et créez un StackPanel au milieu de ScrollViewer.


Étape 25: Ajustez le StackPanel

Sélectionnez le StackPanel s'il ne figure pas déjà dans le panneau "Objets et chronologie", puis cliquez sur le bouton "Brosse de couleur unie" dans la zone Formes (il s'agit de la deuxième de gauche, juste à côté de "Sans pinceau"). et définissez la couleur d'arrière-plan sur "# FFB8B8B8". De plus, changez les Horizontal et VerticalAlignment en "Stretch", vérifiez si Width et Height sont réglés sur "Auto" et si les marges sont toutes à "0":


Étape 26: Créer une grille

Choisissez le conteneur de la grille dans la barre d'outils et créez une grille.

Si vous l'avez créé dans StackPanel, faites-le simplement glisser dans la LayoutRoot-Grid:


Étape 27: Ajustez la grille

Changez la hauteur de la grille en "30" pixels et la largeur en "Auto". HorizontalAlignment to "Stretch", VerticalAlignment to "Top" et la marge sur (-1, -1, -1, 0) pour (gauche, haut, droite, bas):


Étape 28: Créer un rectangle

Sélectionnez l'outil Rectangle dans la partie gauche, au-dessus des conteneurs que nous avons déjà utilisés plusieurs fois…

… Et dessinez une boîte dans la zone de travail.

Déplacez le rectangle dans la grille créée à l'étape précédente:


Étape 29: Ajustez le rectangle

Changez la couleur de remplissage du rectangle en "# FF4E4E4E":

Et la couleur de trait à "# FF1F1F1F":

Réglez Height et Width sur "Auto", Horizontal et VerticalAlignment sur "Stretch" et réinitialisez la marge s'il y en a:


Étape 30: Créer un StackPanel

Maintenant, nous créons un StackPanel et le déplaçons dans la grille:


Étape 31: Ajustez le StackPanel

Modifiez les paramètres de StackPanel comme suit: Largeur et Hauteur sur "Auto", Orientation sur "Horizontal", HorizontalAlignment sur "Left", VerticalAlignment sur "Center" et la marge gauche sur "10":


Étape 32: créer un bouton

Sélectionnez le bouton-outil dans la barre d'outils…

… Et créer un bouton quelque part dans la zone de travail.

Ensuite, faites-le glisser dans le StackPanel que nous venons de créer:


Étape 33: Ajustez le bouton

Définissez la largeur et la hauteur du bouton sur "Auto", HorizontalAlignment sur "Stretch", VerticalAlignment sur "Centre", les marges s'il y en a "0", le contenu sur "Tous les albums" (espaces blancs exprès pour que le bouton par défaut apparaisse). légèrement mieux) et la police à "Verdana":


Étape 34: dupliquer le bouton

Sélectionnez le bouton et appuyez sur Ctrl + C, Ctrl + V pour copier et coller le bouton dans le même StackPanel, puis modifiez la marge à gauche en "5" et le contenu en "Album actuel":


Étape 35: dupliquer le StackPanel

Sélectionnez le StackPanel contenant les deux boutons dans le panneau "Objets et chronologie" et appuyez sur CTRL + C, CTRL + V pour le dupliquer également. Maintenant, votre hiérarchie devrait ressembler à ceci:


Étape 36: Ajustez le StackPanel dupliqué

Sélectionnez le StackPanel dupliqué si vous ne l'avez pas déjà fait, modifiez HorizontalAlignment en "Droite" et définissez toutes les marges en "0" à l'exception de celle de droite, définie à "10" pixels..


Étape 37: Ajustez les boutons

Sélectionnez l'un des boutons du StackPanel dupliqué et remplacez son contenu par " < " if you selected the left one and to " > "pour le droit. Maintenant, nous avons deux boutons avec un symbole de flèche qui sera utilisé plus tard pour la navigation.


Étape 38: Créer un curseur

Sélectionnez l'outil curseur dans la barre d'outils et créez un curseur sur votre espace de travail..

Ensuite, faites-le glisser vers le haut du StackPanel inférieur:


Étape 39: Ajustez le curseur

Sélectionnez le curseur et réglez-le sur les paramètres suivants:

  • Largeur: "100",
  • Hauteur: "Auto",
  • HorizontalAlignment: "Center",
  • VerticalAlignment: "Centre",
  • Marge Droite: "20",
  • les autres marges: "0",

Et sous Propriétés communes:

  • GrandChange: "0,2";
  • Maximum: "1,5";
  • Minimum: "0,5":
  • SmallChange: "0,1";
  • Valeur: "1".

Étape 40: renommer les éléments

Comme dans l'image UserControl que nous avons créée précédemment, nous allons renommer les éléments dont nous avons besoin ultérieurement. De bas en haut: Bouton: "btnNext", Bouton: "btnPrev", Curseur: "curseur", ignore le StackPanel, Bouton: "btnCurrentAlbum", Bouton: "btnAllAlbums", ignore les éléments suivants jusqu'au StackPanel situé à l'intérieur du ScrollViewer. Renommez ce StackPanel en "contenu". Maintenant, la hiérarchie devrait ressembler à ceci:


Étape 41: look final

Voici comment l'utilisateur "wallview-img" devrait apparaître:


Étape 42: Regardez le code

Voici comment le code xaml pour notre UserControl "wallview.img.xaml" apparaît:

         

Conclusion

Blend est un excellent outil pour créer de superbes conceptions et animations. Vous pouvez même écrire tout le code derrière dans Blend, mais je préfère utiliser Visual Studio, car il est plus puissant, dispose d'un débogueur et d'un meilleur IntelliSense pour les propositions et l'auto-complétion..

Dans la deuxième partie de ce didacticiel, nous allons écrire le code complet pour nos deux contrôles utilisateur en C #, ainsi que pour notre propre service Web, qui affiche chaque image d’un dossier particulier dans notre vue murale..

Comme il s’agit de mon premier tutoriel, j’espère que vous avez aimé y travailler et que vous avez appris quelque chose d’utile. Pour tout commentaire, suggestion ou préoccupation, veuillez laisser une note dans la section commentaire..

Merci d'avoir lu!


Ressources supplémentaires

Essai de 30 jours de Blend
Introduction à Microsoft Silverlight 4 - Mélange