In WinForms, atunci cand doream sa extindem functionalitatea unor componente existente, creeam un UserControl in care cream controlul dorit sau un Component in care derivam controlul pe care doream sa il extindem. De exemplu atunci cand extindem un buton, putem sa ii adaugam proprietati si functionalitati noi insa nu putem "umbla" prea mult la modul in care arata acest buton.
Silverlight vine cu o noua abordare a derivarii controalelor, acestea fiind numite acum Templates. Dupa cum spuneam intr-un post anterior, XAML este acum in spatele interfetelor. Controalele standard din Silverlight sunt de fapt o serie de declaratii XAML, grupate si accesibile ca un tot unitar care poate fi folosit "as is" sau.... Sau poate fi "derivat" sau cum i se spune in Expression Blend : crearea si editarea unui nou teplate be baza controlului. Pentru a face acest lucru se selecteaza un control de pe interfata creata, click dreapta si se alege din meniu optiunea "Edit control parts" si apoi "Edit a copy". In acest moment, avem access la codul XAML pentru tot controlul selectat.

Expression Blend prezinta intr-un mod foarte intuitiv componentele, in mod ierarhic. Putem analiza componentele unui buton : are la baza un Container de tip grid; In container avem o componenta Background care contine gradientul butonului si animatiile de Mouse Hoover, Mouse Press; Avem un "content presenter" care dupa cum ii spune numele este containerul pentru continutul butonului; si in final 2 elemente de tip border pentru starile de Disable si Focus.

De aici incolo variantele de customizare sunt practic nelimitate. Se pot modifica componentele care formeaza butonul, se pot altera cele prezente, se pot adauga efecte noi pentru trecerile intre starile butonului.
Din acest punct de vede consider ca Silverlight a trecut la urmatorul nivel in materie de derivarea si extinderea controalelor pentru interfete.
Alex.
0 Comments:
Subscribe to:
Postare comentarii (Atom)
