Wygląd w 2D i 3D

Subskrybuj RSS A A A
18 grudnia 2006
Tomasz Kopacz

Nowa biblioteka Windows Presentation Foundation umożliwia tworzenie skomplikowanych interfejsów z elementami 2D, 3D, animacjami i mechanizmami automatycznego importu danych.

Nowa biblioteka Windows Presentation Foundation umożliwia tworzenie skomplikowanych interfejsów z elementami 2D, 3D, animacjami i mechanizmami automatycznego importu danych.

Organizacja graficznego interfejsu Windows od dawna opierała się na podstawowych założeniach - dostępne było okno z tzw. uchwytem i kolejką komunikatów, które służą do informowania o wszelkich zdarzeniach typu zmiana rozmiaru, ruch myszy itp. Kontrolka umieszczana na formatce jest także de facto oknem z podobnymi mechanizmami komunikacji. Windows Presentation Foundation (WPF) bazuje na zupełnie innych zasadach. Po pierwsze, obiekty graficzne nie mają uchwytów okien i są po prostu rysowane (grafika wektorowa). Nie zajmują więc tzw. zasobów systemowych. System zdarzeń, który w Windows Forms czeka na komunikaty z systemu operacyjnego w WPF, jest czystym mechanizmem wykorzystującym zdarzenia i delegaty z .Net 3.0. Wszystko to sprawia, że bez problemów można tworzyć aplikacje, gdzie kilka różnych wątków równolegle uaktualnia interfejs użytkownika. WPF używa tego mechanizmu także wewnętrznie, np. do realizacji animacji.

Interfejs z bajerami

WPF - architekturaKliknij, aby powiększyćWPF - architekturaPrzy tworzeniu interfejsu użytkownika wykorzystana została koncepcja podobna do stosowanej w przypadku aplikacji WWW.

Budując stronę ASP.Net, w pliku ASPX definiowany jest jej układ, czyli kontrolki serwerowe i kod HTML. Obok nich znajduje się właściwy kod obsługujący daną formatkę. Podobnie jest w WPF. Wygląd definiowany jest za pośrednictwem pliku XML zapisanego w języku XAML, któremu także towarzyszy kod realizujący procedury obsługi zdarzeń lub dodatkowe operacje wykonywane przy inicjacji strony. W procesie kompilacji dokument XAML przekładany jest na ciąg wywołań API - mechanizm nie niesie ze sobą dodatkowego narzutu. Ale równocześnie dostępne są mechanizmy, które pozwalają w locie wczytać plik XAML i wygenerować odpowiedni interfejs.

Możliwości graficzne XAML i WPF są duże i pozwalają na tworzenie dowolnych grafik 2D i 3D, definiowanie kontrolek (pole tekstowe, przyciski, listy, siatki), okien, a także stosować panele lub inne pojemniki, które automatycznie rozmieszczają zawarte w nich obiekty. Definicja interfejsu to tak naprawdę ciąg poleceń (znaczników) oraz wskazanie do kodu obsługującego dane elementy. Oprócz definicji obiektów (linii, pól do wprowadzania danych itp.) WPF pozwala na definiowanie transformacji sceny - obrotów, skalowania, animacji, podobnie jak ma to miejsce w przypadku bibliotek graficznych. Definiując rozmiary elementów, należy posługiwać się jednostkami metrycznymi lub calami, a WPF zapewnia, że na każdym urządzeniu, niezależnie od jego rozdzielczości DPI (także na drukarce), dany obiekt zawsze będzie miał taki sam rozmiar. Nadal można używać pikseli, z tym że są to "piksele niezależne od rozdzielczości". Jeden taki piksel ma 1/96 cala (96 DPI to standardowy rozmiar czcionek w Windows Vista).

Architektura wyświetlania została zorganizowana przy zastosowaniu kilku warstw. Na samej górze znajduje się API użytkowe (tzw. Presentation Framework) wykorzystywane w aplikacjach i przez XAML. W wyniku operacji np. rysowania siatki lub pola tekstowego powstaje tzw. drzewo logiczne, które jest przekazywane do kolejnej warstwy Visual Layer. Drzewo wizualne składa się z bazowych elementów graficznych, takich jak pędzle, ścieżki itp. Podczas generowania drzewa pomijane są elementy niewidoczne (np. gdy pole tekstowe zasłania pewien fragment siatki). Dzięki temu skomplikowane interfejsy, gdzie dużo elementów nakłada się na siebie, mogą być rysowane bardzo szybko i to bez żadnego nakładu pracy ze strony programisty. Oczywiście można też tworzyć interfejs, używając API z warstwy Visual Layer lub bezpośrednio wpływać na sposób konstrukcji drzewa logicznego. Wszystkie te operacje wykonywane są w kodzie zarządzalnym.

Poniżej znajduje się warstwa sterownika graficznego (kod niezarządzalny). W Windows Vista składa się ona m.in. z modułu zarządzania desktopem oraz Composition Engine i Media Integration Layer. Każdy z fizycznych pikseli na tej platformie może być obsługiwany przez jedną z trzech technologii: DirectX 3D, Windows Forms/GDI+ albo właśnie WPF. W przypadku Vista za rysowanie zawsze odpowiada Direct3D oraz specjalny, nowy model sterownika LDDM o modułowej architekturze.

Dokument jak strona WWW

Kolejnym elementem WPF jest infrastruktura związana z dokumentem. Ponieważ biblioteka pozwala tworzyć aplikacje Windows, po których użytkownik porusza się jak po stronach WWW, konieczne było zapewnienie prostych mechanizmów, pozwalających zachować stan programu. Dzięki temu gdy użytkownik kliknie wstecz, może łatwo przenieść się do poprzednio wyświetlanego ekranu. Układ i kolejność etapów (okien) mogą być dowolne. Microsoft zdefiniował tzw. Structured Navigation Framework, który implementuje często spotykane w aplikacjach schematy nawigacji. Wśród dostępnych elementów warto wymienić kreatora, motor realizujący dowolny hierarchiczny układ i układ adaptatywny z centralnym hubem nawigacyjnym, który pozwala na łatwe i dynamiczne zmienianie kolejności otwierania okien w zależności od tego, co użytkownik wprowadza w kolejnych etapach.

WPF można wykorzystać jako narzędzie do prezentacji dokumentów. Specjalne pojemniki pozwalają m.in. przedstawiać tekst z różnym formatowaniem i osadzonymi rysunkami. Można także utrwalić taki dokument, zapisując treść wraz z innymi elementami niezbędnymi do prezentacji. Służy do tego XML Paper Specification. XAML ze swej natury może też być użyty jako język opisu strony przeznaczonej do druku. Renderowanie XAML zakłada oczywiście, że w danym momencie są dostępne wszystkie zasoby potrzebne do wygenerowania widoku - rysunki, czcionki itp.

Wiekowy format RAW (który służył jako typ pośredni podczas drukowania stron) został w WPF zastąpiony przez XPS, który jest pojemnikiem zawierającym wszystkie elementy wymagane do wiernego odwzorowania pokazywanych elementów, a obraz nie musi być statyczny i można w nim zapisać także animację. Plik XAML serializuje się do pliku XPS. Warto zauważyć, że w Windows Vista sterowniki drukarek mają rozumieć język XPS i dzięki temu wydruki dokumentów będą szybsze niż obecnie. Oprócz tego dokument XPS może mieć dołączone informacje o prawach do wykonywania określonych operacji RMS (Right Management Server).

Mechanizm ten pozwala m.in. na ograniczenie praw kopiowania do schowka, drukowania, a nawet prezentacji dokumentu na komputerze niepodłączonym do danej domeny.

Zupełnie inaczej definiowane są kontrolki w WPF. Po pierwsze, kontrolka ma przede wszystkim taką rolę, jaką pełni w interfejsie, czyli jest listą wyboru, polem, gdzie użytkownik wprowadza informacje, przyciskiem wywołującym określoną akcję itp. Dopiero potem nakładany jest sposób prezentacji, a więc generalnie "przepis" na wyświetlanie zawartości. Można porównać to z tzw. modelem Model-View-Controller, gdzie Controller to kontrolka (czyli jej zachowanie i to, jakie operacje pozwala wykonać użytkownikowi), View to wizualizator kontrolki określający jej wygląd, a Model to dane pobrane ze stanu dokumentu lub z bazy danych przy wykorzystaniu bindingu.

Ten mechanizm pozwala w bardzo prosty sposób stworzyć własny, unikalny wygląd interfejsu użytkownika. Aby to osiągnąć, wystarczy, że programista wybierze bazowy obiekt (kontrolkę) realizujący potrzebne mu funkcje i doda do niego wzorzec, który odpowiednio wyświetli dany element. Wzorzec jest także plikiem XAML umożliwiającym wskazywanie, która funkcja ma być wywołana w momencie gdy rysowany jest obiekt, analogicznie jak w przypadku funkcji OwnerDraw w Windows Forms.

Framework pozwala określać zachowania na poziomie typów elementów dokumentu. W ten sposób można określić, że np. wszystkie elementy służące do wprowadzania danych bazujące na TextBox w momencie najechania na nie myszą mają zmienić wygląd. Nie trzeba tego definiować dla każdej kontrolki, jak ma to miejsce w Win32 lub Windows Forms.

Dla każdego inny interfejs

Tworząc aplikacje wykorzystujące WPF, warto jednak pamiętać o kilku problemach. Jest to na tyle inna technologia, że standardowe podejście stosowane w projektach formatek w VS.Net nie ma sensu. Ponadto jest tyle różnych sposobów konstrukcji interfejsu, że najpierw trzeba bardzo dokładnie zaplanować interakcję z użytkownikiem, a nie próbować wykorzystania w aplikacji każdego z nowych elementów udostępnianych przez WPF.

Nic nie stoi na przeszkodzie, by jednak połączyć Windows Forms i WPF, bo kontrolki z WinForms mogą być użyte jako element w Windows Presentation Foundation.

Oprócz tego zaletą WPF jest modułowość i możliwość automatycznego dopasowania funkcjonalności. Przykładowo, jeżeli formatka nie korzysta z wyrafinowanych elementów 3D, to mechanizmy obsługi 3D nie są inicjowane, a w konsekwencji nawet gdy komputer nie ma potężnego akceleratora graficznego, aplikacja szybko wyświetla interfejs, a dzięki koncepcji "drzewa wizualnego" wyświetlanie jest często szybsze niż za pomocą rozbudowanego interfejsu w GDI+/WinForms.

Dodatki do WPF

Microsoft oferuje dodatek Cider (obecnie w wersji CTP) do VS.Net 2005, który pozwala projektować okna WPF, ale równocześnie rozwija nową rodzinę narzędzi Expression, która zawiera pakiet Interactive Designer przeznaczony do definiowania okien WPF. Interactive Designer używa dokładnie tego samego formatu projektu co VS.Net, a więc jego integracja ze środowiskiem programistycznym nie sprawi kłopotów. Na razie zespół zajmujący się VS.Net zapowiada, że listopadowa wersja Cider będzie ostatnią, która będzie udostępniana jako dodatek do VS.Net 2005. Następne będą oferowane wraz z IDE - kolejną wersją Visual Studio Orcas, którego pierwsza publiczna wersja testowa ma się pojawić na początku 2007 r. Obecnie jest dostępna tylko w postaci obrazu maszyny wirtualnej.

Kilka niezależnych firm oferuje własne narzędzia do projektowania wykorzystującego funkcje WFP, jak np. MobiForm Aurora - alternatywny projektant scen. Dostępnych jest także kilka konwerterów do generowania dokumentów w formacie XAML na podstawie plików graficznych. Mogą one być później użyte w nowej aplikacji jako elementy okien itp.

Tylko fakty
Cztery główne technologie Microsoft .Net 3.0

  • Windows Workflow Foundation (pisaliśmy o tym w Computerworld 44/2006)

  • Windows Communication Foundation i Windows CardSpace (pisaliśmy o tym w Computerworld 45/2006)

  • Windows Presentation Foundation

Oceń artykuł

średnio: 0 liczba ocen: 0

Komentarze (0)

Najnowsze

MAC, czyli ministerstwo reformowania rządzenia

Premier wspiera lojalnie w kryzysie najbliższego współpracownika, Michała Boniego, przyjmując na siebie atak oburzonych internautów podczas debaty o ACTA.

Nowe, unijne zamówienia publiczne

Komisja Europejska proponuje ważne zmiany prawa wspólnotowego w obszarze zamówień publicznych. Warto im się przyjrzeć bo to jeden z elementów nowej perspektywy finansowej UE. Warto zatem przyjrzeć się owej propozycji bliżej.

Bezpieczeństwo rządowych stron - analiza

Zespół zadaniowy ds. ochrony portali rządowych opublikował wytyczne. Trudno stwierdzić, że to najlepsze rekomendacje, jakie można było przy okazji zaistniałych ataków wypracować.

DEBATA: Kiedy walka polityczna w sieci przemienia się w cyberterroryzm?

Skuteczny atak cybernetyczny przyniesie opłakane skutki dla państwa i gospodarki. Boleśnie się o tym przekonaliśmy, gdy nie można było dostać się na strony internetowe najważniejszych instytucji w Polsce.

Czy MSW chce unieważnienia przetargu na pl.ID?

Rośnie ryzyko całkowitego unieważnienia przetargu na nowe dowody osobiste. Krajowa Izba Odwoławcza odrzuciła odwołanie firmy Sygnity, która nie zgadzała się na wydłużenie o trzy miesiące terminu składania ofert na dostawę blankietów nowych dowodów osobistych. Wydłużenie całego postępowania o trzy miesiące może spowodować skargi uczestniczących w nim firm, a w konsekwencji unieważnienie przetargu.

Garść rad dla roztropnego szefa IT

Trudne czasy w gospodarce to okres, kiedy szczególnego znaczenia nabiera hasło: Jak cię widza, tak cię piszą. Osłabienie rynku przekłada się na oszczędności w przedsiębiorstwie, a oszczędności najłatwiej szukać w działach, które, w opinii zarządu, nie są bezpośrednio związane z prowadzoną działalnością - czyli również w dziale IT.

Sprzeczne wizje e-dowodu

Koncepcja elektronicznego dowodu osobistego powstała w Polsce wiele lat temu. Starsze są koncepcje elektronicznego systemu świadczeń ochrony zdrowia. Mimo to, nadal są w trakcie budowy.

Rekomendacje

Serwisy IDG - Warunki obsługi - Kontakt - Redakcja - Regulamin - O nas - Polityka prywatności - Serwis zgodny z ASME
Reklama - Licencjonowanie treści
Computerworld Polska i Computerworld Polska online są znakami towarowymi IDG Poland SA.
© Copyright 2012 International Data Group Poland S.A. 04-204 Warszawa ul. Jordanowska 12 tel.(+4822)321-78-00 fax(+4822)321-78-88