Maak een Wallview voor afbeeldingen met Silverlight ontwerp

Zoals de titel aangeeft, gaan we een door iTunes geïnspireerde Wallview maken. Deze tutorial is opgesplitst in twee delen - een voor het ontwerp in Blend en de andere voor de code achter in Visual Studio.


Eindresultaat voorbeeld

Bekijk deze video-demo van het uiteindelijke resultaat waar we naartoe zullen werken (of bekijk de webgebaseerde demo hierboven):


Invoering

In dit deel van de tutorial gaan we twee UserControls ontwerpen in Expression Blend. Deze zelfstudie ziet er vrij lang uit van het aantal stappen, maar dit komt omdat het zeer grondig is; er is een uitleg en een screenshot voor bijna elke klik die je moet doen. De reden dat ik het zo gedetailleerd heb geschreven, is dat mijn partners van de universiteit Blend veel te ingewikkeld en moeilijk te gebruiken vonden.


Stap 1: Maak een nieuw project in Visual Studio

Open Visual Studio en klik op "Bestand"> "Nieuw"> "Project" in de bovenste menubalk.


Stap 2: instellen

Selecteer Silverlight Application Visual C # in het menu en typ "WallviewApp" voor een projectnaam onderaan en ook de locatie om het project op te slaan.

Hierna ziet u een popup. Zorg ervoor dat je het vakje onderaan aanvinkt en selecteer Silverlight 4 uit de combobox.


Stap 3: Open het project in blend

Start Expression Blend en open het project dat we zojuist in Visual Studio hebben gemaakt.

Blader naar het projectbestand in de projectdirectory en open het.


Stap 4: Maak twee nieuwe mappen

Klik met de rechtermuisknop op het project WallviewApp in de projectstructuur en kies "Nieuwe map toevoegen". Doe dit twee keer, noem de mappen "usercontrols" en "image".


Stap 5: Maak een nieuwe gebruikerscontrole

Klik met de rechtermuisknop op de vers aangemaakte map "usercontrols" en selecteer "Nieuw item toevoegen ...".

Controleer in de pop-up of UserControl is geselecteerd en voer "image.xaml" in als een naam.


Stap 6: Maak een StackPanel

Kies de StackPanel-container op de werkbalk, die standaard aan de linkerkant moet staan ​​...

... en teken een rechthoek in het midden van de LayoutRoot die er vanaf het begin was.


Stap 7: Pas het StackPanel aan

Zorg ervoor dat het StackPanel aan de linkerkant is geselecteerd in het venster "Objecten en tijdlijn". Aan de rechterkant ziet u de parameters van het momenteel geselecteerde element. Verander de breedte en hoogte in "Auto (0)" door op de gekruiste pijlen naast het tekstveld te klikken. Horizontale uitlijning tot "Center" en VerticalAlignment tot "Top". Reset de marge door op het witte vierkantje naast de tekstvelden te klikken en Reset in het menu te kiezen. Stel daarna de topmarge in op "5". Nu zou het lay-outpaneel er zo moeten uitzien en aangezien het StackPanel een formaat van 0x0 pixels heeft, kun je het niet langer zien:


Stap 8: Maak een raster

Ga je gang en selecteer de Grid-container op de werkbalk aan de linkerkant (waar we eerder het StackPanel hebben geselecteerd) en teken nog een rechthoek in het midden van je werkruimte.


Stap 9: pas het raster aan

Bekijk het paneel "Objecten en tijdlijn" en zorg ervoor dat het raster zich in het StackPanel bevindt. Als het niet gewoon klik en sleep het naar het StackPanel.

Pas de lay-outinstellingen aan terwijl het raster nog steeds is geselecteerd. Stel Breedte en Hoogte in op "200" pixels, Horizontaal en Verticaal Afstemmen op "Uitrekken" als ze dat nog niet zijn.


Stap 10: maak een rand

Nu gaan we een rand maken. U kunt het selecteren zoals het raster en StackPanel op de werkbalk aan de linkerkant. Teken een rechthoek met de rand en verplaats deze naar het raster als dit nog niet het geval is.


Stap 11: Pas de kleursetkleur en hoeken aan

Open het gebied voor penselen aan de rechterkant en verander de BorderBrush in de volgende kleur: "# 0076A2F9". Stel vervolgens de BorderThickness in het deelvenster Uiterlijk in op "5" pixels in alle vier richtingen en de CornerRadius op "5" pixels. Breedte en hoogte moeten worden ingesteld op "Auto" door op de gekruiste pijlen naast het tekstvak te klikken. De HorizontalAlignment moet worden ingesteld op "Center" en de VerticalAlignment op "Bottom":


Stap 12: Pas de rand aan Voeg een schaduw toe

Nu gaan we een schaduweffect aan de rand toevoegen. Klik op de knop 'Nieuw' in het venster Uiterlijk naast Effect. In de komende pop-up selecteert u "DropShadowEffect" en klikt u op "OK".

Pas de Schaduwinstellingen aan die vlak onder de knop "Nieuw" kwamen door BlurRadius in te stellen op "10" en SchaduwDiepte op "1":


Stap 13: importeer een afbeelding

Nu gaan we een afbeelding importeren in Blend. U doet dit door met de rechtermuisknop op de map genaamd "afbeelding" te klikken die we eerder hebben gemaakt en "Bestaand item toevoegen" te selecteren of door de map te selecteren en een afbeelding rechtstreeks vanaf uw bureaublad of verkenner naar het bestand te slepen.

Na het importeren zou je projectboom er als volgt uit moeten zien:


Stap 14: Gebruik de afbeelding

Als u de afbeelding in het besturingselement wilt gebruiken, sleept u deze eenvoudig vanuit de projectbrowser, waar u deze hebt geïmporteerd, rechtstreeks naar de werkruimte. Zoals je kunt zien is het veel te groot en in de verkeerde container:

Om dat te repareren slepen we de afbeelding naar de rand:


Stap 15: pas de afbeelding aan

Verander de hoogte en breedte van de afbeelding naar "Auto", horizontaal en verticaal uitlijnen naar "midden", marges naar "0" en uitrekken naar "uniform" in het venster Common Properties:


Stap 16: Maak een TextBlock

Selecteer het TextBlock-gereedschap op de werkbalk aan de linkerkant en maak een TextBlock ergens in het werkgebied.

Druk op de "ESC" -toets op uw toetsenbord om het bewerken van de tekst in het TextBlock te annuleren.


Stap 17: Pas het TextBlock aan

Klik en sleep het TextBlock in het venster "Objecten en tijdlijn" naar het StackPanel dat we eerder hebben gemaakt.

Wijzig daarna de voorgrondkleur in "# FF1F1F1F" en de lay-outinstellingen aan de rechterkant in de volgende waarden: Breedte: "Auto", Hoogte: "Auto", HorizontalAlignment: "Center", VerticalAlignment: "Top", Marge -Top: "8". Zet de tekst op niets door de tekst "TextBlock" te markeren en te verwijderen of door op het witte vierkant ernaast te klikken en op "Reset" te klikken. Wijzig ook het lettertype van de tekst in "Verdana":


Stap 18: Maak nog een TextBlock

Maak nog een TextBlock door stappen 16 en 17 te herhalen, of door degene die we al hebben gemaakt in het venster "Objecten en tijdlijn" te selecteren en op Ctrl + C te drukken en vervolgens op Ctrl + V om het te dupliceren. Het enige dat we anders moeten doen dan stap 17 is dat we niet willen dat er een marge wordt ingesteld. Als u de duplicaatmethode hebt gebruikt, stelt u gewoon de bovenste marge in op "0" of klikt u op het kleine witte vierkant ernaast en stelt u de marge opnieuw in:


Stap 19: hernoem de elementen

Om te kunnen werken met de elementen die we tot nu toe hebben gemaakt, moeten we ze namen geven. Dus ga je gang en hernoem het TextBlock helemaal onderaan naar "imgDate" door ofwel langzaam tweemaal te klikken of door met de rechtermuisknop te klikken en "hernoemen" te selecteren. Verander de naam van de andere TextBlock naar "imgName", de afbeelding naar "img", de rand naar "imgBorder" en de grid naar "imgSize". Nu zijn we klaar met het ontwerp van deze controle en uw hiërarchie zou er als volgt uit moeten zien:

En het ontwerp zou er als volgt uit moeten zien:

Natuurlijk kun je de twee TextBlocks in je project niet zien, omdat we hun tekst een paar stappen eerder op niets zetten.

Ik laat persoonlijk de namen van Textblocks achter zolang ik ze nodig heb om het ontwerp te laten maken voordat ik ze verwijder. Op deze manier kunt u bepalen of alles op de juiste plaats is.


Stap 20: Bekijk de XAML

Als je de code wilt bekijken die we zojuist hebben gegenereerd, klik je op het pictogram "< >"in het midden bovenaan de rechter schuifbalk van het werkgebied. Om terug te keren naar de ontwerpweergave, klik op het pictogram bovenaan.

Onze code ziet er zo uit:

                

Stap 21: Maak een andere UserControl

Zorg ervoor dat u teruggaat naar de ontwerpweergave.

Maak een andere UserControl in de map "usercontrols" door met de rechtermuisknop op de map te klikken en "Nieuw item toevoegen" te kiezen in het menu.

Selecteer "UserControl" in de pop-up en voer voor de naam "wallview-img.xaml" in:


Stap 22: Maak een ScrollViewer

Kies de ScrollViewer-container in de werkbalk aan de linkerkant ...

... en teken er een rechthoek mee naar de werkruimte.


Stap 23: Pas de ScrollViewer aan

Terwijl de ScrollViewer is geselecteerd, inspecteert u het gebied met penselen aan de rechterkant en wijzigt u de BorderBrush in "No Brush".

Stel de BorderThickness in op "0" voor alle vier richtingen, de Horizontal en VerticalAlignment op "Stretch", de Top Marge op "29" pixels en de andere Marges op "0". Controleer ook of Breedte en Hoogte op "Auto" staan ​​door op de gekruiste pijlen te klikken. Breid het lay-outgebied verder uit door op de kleine pijl te klikken en zet alle vier de vullingsrichtingen op "0":


Stap 24: Maak een StackPanel

Selecteer het StackPanel via de werkbalk aan de linkerkant ...

... en maak een StackPanel in het midden van de ScrollViewer.


Stap 25: pas het StackPanel aan

Selecteer het StackPanel als dit nog niet is gebeurd in het venster "Objecten en tijdlijn" en klik vervolgens op de knop "Effen kleurenpenseel" in het gebied Penselen (het is het tweede van links, direct naast "Geen penseel") en stel de achtergrondkleur in op "# FFB8B8B8". Verander verder de Horizontal en VerticalAlignment naar "Stretch", controleer of Width en Height zijn ingesteld op "Auto" en of de marges allemaal "0" zijn:


Stap 26: Maak een raster

Kies de rastercontainer op de werkbalk en maak een raster.

Als u het in het StackPanel hebt gemaakt, sleept u het gewoon naar het LayoutRoot-raster:


Stap 27: pas het raster aan

Wijzig de hoogte van het raster in "30" pixels en de breedte in "Auto". Horizontale uitlijning tot "uitrekken", verticale uitlijning naar "boven" en de marge naar (-1, -1, -1, 0) voor (links, boven, rechts, onder):


Stap 28: maak een rechthoek

Selecteer de Rechthoek-tool aan de linkerkant die zich boven de containers bevindt die we al verschillende keren hebben gebruikt ...

... en teken een doos in het werkgebied.

Verplaats de rechthoek naar het raster dat we in de vorige stap hebben gemaakt:


Stap 29: pas de rechthoek aan

Verander de vulkleur van de rechthoek in "# FF4E4E4E":

En de lijnkleur op "# FF1F1F1F":

Stel Hoogte en Breedte in op "Auto", Horizontaal en Verticaal Afstemmen op "Uitrekken" en reset de marge als er een is:


Stap 30: Maak een StackPanel

Nu maken we een StackPanel en verplaatsen het naar de Grid:


Stap 31: pas het StackPanel aan

Wijzig de parameters van de StackPanel in het volgende: breedte en hoogte in "Auto", richting op "horizontaal", horizontale uitlijning op "links", verticale uitlijning op "midden" en de marge links op "10":


Stap 32: Maak een knop

Selecteer het knopgereedschap op de werkbalk ...

... en maak een knop ergens in het werkgebied.

Sleep het vervolgens naar het StackPanel dat we zojuist hebben gemaakt:


Stap 33: pas de knop aan

Stel de breedte en hoogte van de knop in op "Auto", HorizontalAlignment op "Stretch", VerticalAlignment op "Center", Marges als er een "0" is, de inhoud op "Alle albums" (witte spaties op doel dus de standaardknop ziet er uit iets beter) en het lettertype naar "Verdana":


Stap 34: Dupliceer de knop

Selecteer de knop en druk op Ctrl + C, Ctrl + V om de knop in hetzelfde StackPanel te kopiëren en te plakken, en vervolgens de marge-links in "5" en de inhoud in "Huidig ​​album" te veranderen:


Stap 35: Dupliceer het StackPanel

Selecteer het StackPanel met de twee knoppen in het paneel "Objecten en tijdlijn" en druk op CTRL + C, CTRL + V om het ook te dupliceren. Nu zou je hiërarchie er als volgt uit moeten zien:


Stap 36: Pas het gedupliceerde StackPanel aan

Selecteer het gedupliceerde StackPanel als u dat nog niet hebt gedaan, verander de HorizontalAlignment in "Right" en stel alle margins in op "0" behalve de rechter die u instelt op "10" pixels.


Stap 37: pas de knoppen aan

Selecteer een van de knoppen in het gedupliceerde StackPanel en verander de inhoud in " < " if you selected the left one and to " > "voor de juiste. Nu hebben we twee knoppen met een pijlsymbool dat later zal worden gebruikt voor navigatie.


Stap 38: maak een schuifregelaar

Selecteer het schuifregelaar-gereedschap op de werkbalk en maak een schuifregelaar in uw werkruimte.

Sleep het vervolgens naar de bovenkant van het onderste StackPanel:


Stap 39: pas de schuifregelaar aan

Selecteer de schuifregelaar en pas deze aan de volgende instellingen aan:

  • Breedte: "100",
  • Hoogte: "Auto",
  • HorizontalAlignment: "Center",
  • VerticalAlignment: "Center",
  • Margin-Right: "20",
  • de andere marges: "0",

En onder Common Properties:

  • LargeChange: "0,2";
  • Maximum: "1,5";
  • Minimum: "0,5":
  • SmallChange: "0,1";
  • Waarde: "1".

Stap 40: hernoem de elementen

Zoals in de afbeelding UserControl die we eerder hebben gemaakt, gaan we de elementen hernoemen die we later nodig hebben. Van onder naar boven: knop: "btnNext", knop: "btnPrev", schuifregelaar: "schuifregelaar", sla StackPanel over, knop: "btnCurrentAlbum", knop: "btnAllAlbums", sla de volgende elementen over naar het StackPanel dat zich binnenin bevindt van de ScrollViewer. Hernoem dat StackPanel naar "inhoud". Nu zou de hiërarchie er zo uit moeten zien:


Stap 41: Laatste blik

Dit is hoe de "wallview-img" UserControl nu zou moeten verschijnen:


Stap 42: Kijk eens naar de code

Dit is hoe de xaml-code voor onze UserControl "wallview.img.xaml" verschijnt:

         

Conclusie

Blend is een geweldige tool om prachtige ontwerpen en animaties te maken. Je kunt zelfs de hele code achterlaten in Blend, maar ik gebruik Visual Studio liever omdat deze krachtiger is, een debugger heeft en een betere IntelliSense voor voorstellen en automatische aanvullingen.

In het tweede deel van deze tutorial gaan we de hele code achterlaten voor onze twee UserControls in C # en onze eigen webservice die elk beeld uit een bepaalde map in ons wallview plaatst.

Aangezien dit mijn eerste zelfstudie is hoop ik dat je het leuk vond om er doorheen te werken en iets nuttigs hebt geleerd. Voor opmerkingen, suggesties of opmerkingen, laat een berichtje achter in het commentaargedeelte.

Bedankt voor het lezen!


Verdere bronnen

30 dagen proef van Blend
Een inleiding tot Microsoft Silverlight 4 - Blend