Kurs obsługi programu Microsoft Expression Blend. Część 5 – klasa Grid
Elementy panelu w Windows Presentation Foundation to komponenty, które kontrolują sposób wyświetlania innych, umieszczonych w nich obiektów. Użytkownik Expression Blenda może skorzystać z wielu zdefiniowanych domyślnie elementów tego typu, a także w procesie projektowania dodawać własne, niestandardowe rodzaje. Najbardziej wszechstronnym narzędziem spośród obiektów panelu jest jednak klasa Grid, dzięki której części składowe wszystkich naszych aplikacji zachowają odpowiedni wygląd niezależnie od środowiska, w jakim będą prezentowane.
Podstawowe właściwości klasy Grid
Grid to taki rodzaj panelu, który może zostać podzielony na jedną i więcej kolumn lub na jeden i więcej wierszy. Najważniejszą zaletą tego elementu jest możliwość bardzo łatwej zmiany rozmiaru wierszy i kolumn oraz oczywiście osadzonych elementów podrzędnych, a więc w praktyce prawidłowe dostosowanie się do wielkości okna. Dostęp do obiektu Grid możliwy jest za pomocą opisywanego wcześniej przybornika narzędzi oraz biblioteki zasobów. Grid ma również oczywiście swoje odzwierciedlenie w kodzie XAML. Najprostsza postać polecenia wygląda w tym wypadku następująco:
|
<Grid /> |
| Listing 1 – Najprostsza instrukcja wywołująca element Grid. |
Taka konstrukcja jest jak najbardziej poprawna, ale nie zawiera, jak widać, żadnych właściwości. Ich lista jest tymczasem bardzo długa – przykładowy fragment bardziej rozbudowanego panelu Grid prezentuje poniższy fragment kodu. W tym wypadku mamy już do czynienia z trzema wierszami i taką samą liczbą kolumn:
|
<Grid Background=”#FFA8EDEA” ShowGridLines=”True” Margin=”80,56,88,60”> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> </Grid> |
| Listing 2 – Przykładowy panel Grid. |
Jak widać, do definiowania wierszy i kolumn służą obiekty ColumnDefinition oraz RowDefinition, pogrupowane z kolei w elementach ColumnDefinitions oraz RowDefinitions. Dodatkowo istnieje możliwość pokazywania i ukrywania linii siatki za pomocą atrybutu ShowGridLines. Tak oto będzie się prezentowała powyższa definicja w działaniu:
Przykładowy panel Grid, prezentujący trzy kolumny i trzy wiersze.
Aby ułatwić sobie pracę z siatkami, możemy ograniczyć korzystanie z definicji XAML. Znacznie wygodniejsze w użyciu będą bowiem narzędzia wizualne Expression Blenda, które równie dokładnie pozwolą nam określić właściwości paneli.
Korzystanie z narzędzi graficznych w procesie tworzenia i modyfikowania siatki może znacznie ułatwić nam pracę.
Na powyższej ilustracji widać wyraźnie, że dzięki zastosowaniu odpowiednich narzędzi graficznych możemy ręcznie dodać do panelu wiersz lub kolumnę. Po umieszczeniu wskaźnika myszy nad belką symbolizującą granice siatki pojawią się linie odpowiadające pionowemu i poziomemu podziałowi obszaru. Klikając zaznaczony trójkąt, bez trudu wzbogacimy zatem obiekt Grid o kolejny element. W ten sam sposób możemy również usuwać zbędne kolumny i wiersze.
Oprócz dodawania i usuwania linii podziału mamy również możliwość własnoręcznego określania rozmiarów poszczególnych elementów. Spójrzmy jeszcze raz na pierwszą z zamieszczonych ilustracji, prezentującą ogólny wygląd siatki. Dostrzeżemy tutaj jeden ciekawy element – kłódkę symbolizującą sposób definiowania przez użytkownika rozmiaru wierszy i kolumn. Istnieją dwie podstawowe metody. Pierwszą z nich jest podanie wymiarów osobno dla każdego elementu. Na możliwość przeprowadzenia takiego działania wskazuje znak zamkniętej kłódki. Aby określić wartość, wystarczy wybraną ikonę kliknąć. W efekcie, jeśli będziemy zmieniali rozmiar okna, określona kolumna lub wiersz zachowa zawsze ten sam rozmiar. Oczywiście, znajduje to także odzwierciedlenie w kodzie XAML, gdzie przykładowa definicja wiersza będzie wyglądała następująco:
|
<RowDefinition Height=”0.39”/> |
| Listing 3 – Przykładowa definicja wiersza, którego rozmiar określono na stałe. |
Sytuacją odwrotną do przedstawionej przed chwilą jest adaptowanie się szerokości kolumn i wysokości wierszy do zmian wielkości okna. Aby uzyskać taką możliwość, należy odblokować wybraną kolumnę lub wybrany wiersz. Ikona kłódki powinna w takim wypadku zmienić wygląd na ten, który zaprezentowany został na pierwszej ilustracji w naszym artykule. Wiersz kodu XAML wzbogaci się za to o dodatkowy znak gwiazdki (*), umieszczony obok określonego liczbowo parametru wysokości:
|
<RowDefinition Height=”0.39*”/> |
| Listing 4 – Przykładowa definicja wiersza, którego rozmiar będzie się adaptował do zmian obszaru okna. |
Istnieje jeszcze jeden sposób określenia szerokości i wysokości poszczególnych wierszy i kolumn. Wielkości te mogą być bowiem definiowane w odniesieniu do rozmiarów obiektów znajdujących się w komórkach siatki. Aby możliwa była automatyczna zmiana odpowiednich danych, należy we właściwościach siatki, w sekcji Layout, ustawić parametry Width oraz Height na Auto. Możliwe jest oczywiście również niezależne określenie tych właściwości.
Odpowiedni rozmiar wierszy i kolumn panelu możemy także określić, korzystając z sekcji Layout.
Co ciekawe, także klikając ikonę kłódki w przestrzeni roboczej, będziemy mogli skorzystać z dodatkowego symbolu, który zmieni właściwości pola zgodnie z przedstawionym wcześniej schematem. W XAML definicja wiersza będzie w tym wypadku wyglądała następująco:
|
<RowDefinition Height=”Auto” /> |
| Listing 5 – Przykładowa definicja wiersza o automatycznie modyfikowanym rozmiarze. |
Pamiętajmy, że możliwe jest również określenie minimalnych wartości za pomocą atrybutów MinHeight oraz MinWidth.
«poprzednia 1 2 3 następna »
Polecamy
Reklama
Komentarze
Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka
(słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.
Popularne
Pobierałeś pirackie pliki? Uważaj! Kontrole antypirackie w domach użytkowników to codzienność
35
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Debata w sprawie ACTA: internauci spodziewali się chyba czegoś innego
14
Wynalazca WWW przed sądem: walczy tam o wolny dostęp do webowych technologii dla każdego
8
PHP 5.3.9 nie pozwoli hakerom zawiesić serwera. Pozwoli za to przejąć nad nim kontrolę
28
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
Internet w EU bez Facebooka i Google? Firmy nie mają wyboru: albo się dostosują, albo…
10
MSWiA zamówiło narzędzia do „złamania” Tora i podsłuchiwania internautów. Czy złamało przy tym prawo?
89
[Aktualizacja] Facebook zablokował Demotywatory.pl. W czym zawiniły?
36
FBI zamknęło Megaupload. Anonimowi dali się sprowokować. Teraz ich akcja uzasadni potrzebę SOPA?
17
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
„Donald matole, twój rząd dopadną kibole” – hakerska elita przyłącza się do walki z ACTA
23
Klamka jeszcze nie zapadła. Minister prosi Donalda Tuska, by wstrzymał się z podpisywaniem ACTA
24
Społeczność
slawek22 >są inne rodzime serwisy VOD z legalny filmami
WebDev no fakt... jeśli...
WebDev @BLACK BEAR®
"bo denerwujesz mi ludzi na forum” lool
Minister Zdrowia...
tobas ClickShop bardzo wolno działa!!!
Nie dajcie się nabrać na wygląd i...
blackbear @WebDev, widzę że muszę Ci rozjaśnić we łbie. Czytaj więc i nie pisz...
Jay Brak obsługi aplikacji x86/x64 ze zwykłych desktopów to kręcenie na siebie...
WebDev @slawek22
Tak jak ze wszystkim tak i z prawem własności można przesadzić...
Nie dla ACTA. Nie dla INDECT. Nie dla europejskiego superpaństwa policyjnego. "rejestruje dane statyczne tj. wygląd podpisu, jak i dynamiczne: czas...
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
- Marek: problem z menu (2)
- Marek: Własne checkboxy w HTML,CSS (1)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |











