Windows Vista Presentation Foundation

Windows Vista Presentation Foundation

Autor: Grzegorz Weznerowicz

Opublikowano: 10/5/2008, 12:00 AM

Liczba odsłon: 7718

Windows Presentation Foundation to technologia znajdująca się w Framework 3.0, systemie zapewniającym nowy model programowania zarządzanego kodu dla systemu Windows. Oprócz zalet .NET Framework 2.0 oferuje innowacyjne sposoby tworzenia aplikacji wyróżniające się wizualnie atrakcyjnym interfejsem użytkownika, bezproblemowym współdziałaniem z innymi technikami oraz możliwością obsługi wielu różnych procesów biznesowych. Te nowe technologie to oprócz Windows Presentation Foundation (część graficzna API WinFX) także Windows Communication Foundation (część komunikacyjna API WinFX), Windows Workflow Foundation (pozwala tworzyć szkielet przepływu aplikacji z użyciem stanów i activities) i Windows CardSpace (zarządzanie tożsamością i identyfikacją). .NET Framework 3.0 jest dołączany do systemu operacyjnego Windows Vista i można go zainstalować lub odinstalować przy użyciu panelu sterowania. Dla Windows XP/2000, Windows Server 2003jest dostępny do ściągnięcia na stronach Microsoft. Aby korzystać z tego rozwiązania trzeba jeszcze zainstalować rozszerzenie do Microsoft Visual Studio 2005, pozwalające korzystać z technologii systemu.

Windows Presentation Foundation (nazwa kodowa "Avalon") jest udostępniany poprzez WinFX, składa się z mechanizmu wyświetlania, który wykorzystuje zalety nowoczesnych kart graficznych i rozszerzalnego zestawu klas zarządzalnych, które zespół programistów może wykorzystać do stworzenia rozbudowanych wizualnie aplikacji. Język XAML i ujednolicony interfejs API zapewniają wyższą wydajność osób tworzących multimedia, dokumenty oraz interfejs użytkownika (UI).

Windows Presentation Foundation pozwala na tworzenie interfejsu użytkownika, który ma wygląd systemu Windows Vista z użyciem specjalnej czcionki Segoe UI, przy pomocy nowego języka znaczników - specjalnie na potrzeby budowy User Interface - XAML. Jest on zgodny ze standardem języka XML. Jedną z jego głównych zalet jest to, że jest jednakowy dla każdego z języków programowania - nie ważne czy piszemy w C#, czy w Visual Basic.

Rodzaje projektów dostępnych w technologii WPF

Po uruchomieniu Microsoft Visual Studio 2005 w edytorze projektu widzimy zakładkę .NET Framework 3.0

Windows Application (WPF)

Standardowa aplikacja okienkowa zapisywana jest po zdebugowaniu do formatu EXE. To, co ją odróżnia od zwykłego programu okienkowego dostępnego w wersji Framework 2.0, to fakt, że wykorzystuje możliwości systemu 3.0 - język XAML i kontrolki o wyglądzie Microsoft Vista. Ich design jest o wiele ciekawszy niż we wcześniejszej wersji.

Mamy do wyboru dwa tryby konstruowania interfejsu: Design oraz XAML. W trybie Design widzimy okno programu, do którego możemy przeciągać z Toolbox dostępne komponenty. W Properties możemy (podobnie jak dla standardowych aplikacji) ustawiać wartości pól dla całości oraz istniejących w niej kontrolek.

W XAML widzimy kod XAML aplikacji. Możemy go dowolnie modyfikować i podglądać w trybie Design efekty pracy. W przypadku błędnej konstrukcji kodu zobaczymy jedynie napis, że jest on niepoprawnie napisany i musimy go zmienić, aby móc kontynuować tworzenie interfejsu. Konstrukcja kodu jest oparta na XML, zgodna z jego standardem. Podstawowym Tagiem jest <Windows>, zapewnia on możliwość tworzenia i dostosowywania wyglądu projektu, jest on niezbędny przy tworzeniu aplikacji okienkowej. Wewnątrz znacznika <Windows> możemy umieszczać kolejne tagi definiujące określone elementy. W przykładzie widzimy znaczniki <Grid>, <Button>, <Label> i <TextBox>. Wewnątrz tagu otwierającego możemy ustawiać wartości obiektów i dodawać funkcje do obsługi zdarzeń kontrolek. Jako że XAML jest zgodny ze standardem XML, każdy znacznik otwierający musi być zamknięty poprzez zamykający lub znak '/' na końcu otwierającego.

W projekcie mamy plik z rozszerzeniem xaml, w którym znajduje się kod XAML naszego interfejsu oraz plik Code Behind xaml.cs, w którym definiujemy funkcje do obsługi zdarzeń dodanych do komponentów aplikacji. Mogą być one definiowane w dowolnie wybranym języku. Nie ważne czy piszemy w C#, czy w Visual Basic kodowanie jest jednakowe.

XAML Browser Application (WPF)

Aplikacja XBAP składa się ze stron napisanych w języku XAML, które są wyświetlane w oknie przeglądarki. XBAP jest zintegrowana z przeglądarką, wspiera nawigowanie przy pomocy przycisków Back/Forward oraz jest uruchamiana z ograniczonymi uprawnieniami. Kod XAML dla projektu XBAP jest jednakowy jak dla Windows Application, jedyne co je odróżnia to główne tagi. Dla aplikacji okienkowej jest to <Windows>, dla XBAP <Page>. Po uruchomieniu programu w przeglądarce internetowej zobaczymy program o tym samym interfejsie i obsłudze, co projekt przedstawiony powyżej.

Transformacje w WPF

Transformacje to przekształcenia graficzne kontrolek. Możemy wykonywać operacje takie jak obrót, przesunięcie, przeskalowanie. Można je ze sobą łączyć w złożenia, definiować grupy transformacji dla dowolnych części interfejsu użytkownika. Pozwala to tworzyć ciekawsze aplikacje korzystając z wbudowanych narzędzi. Operację graficzną na dowolnym elemencie umieszczamy w kodzie XAML pomiędzy tagiem otwierającym a zamykającym.

Użyjemy grupy transformacji, a obiektem którego wygląd zmienimy będzie przycisk obecny we wcześniejszej aplikacji. Przeskalujemy go w skali X =1.5, Y = 2.0 Następnie obrócimy o 60 stopni wokół punktu o współrzędnych X = 0, Y=100. Ostatecznie przesuniemy go o wektor (-30,10) w przestrzeni (x,y).

<Button Height="23" HorizontalAlignment="Right" Margin="0,21,51,0" Name="button1" _ VerticalAlignment="Top" Width="85" Grid.ColumnSpan="2" Grid.Column="1"> _ Button <Button.RenderTransform> <TransformGroup> <ScaleTransform ScaleX="1.5" ScaleY="2.0"_ /> <RotateTransform Angle="60" CenterX="0" CenterY="100" /> <TranslateTransform X="-30" Y="10" _ /> </TransformGroup> </Button.RenderTransform> </Button>

Po tych operacjach i uruchomieniu programu w przeglądarce otrzymamy następujący rezultat.

Animacje w WPF

Za pomocą Windows Presentation Foundation możemy także w szybki sposób stworzyć proste oraz bardziej zaawansowane animacje. Aby utworzyć taką, która będzie obracała przycisk wokół własnej osi, dopisujemy znacznik <DoubleAnimation>, wewnątrz którego ustawiamy na jaki element (target) oraz własność (property) interfejsu ma działać, od jakiej wartości ma zaczynać (from), na jakiej kończyć (to), długość trwania (duration) i jakie ma być dalsze zachowanie. Aby dołączyć animację do docelowego elementu musimy ją umiejscowić w znaczniku storyboard. Następnie najprostszym sposobem uruchomienia scenariusza jest przypisanie go do zdarzenia kontrolki.

<Button Grid.Row="1" Height="23" Margin="0,0,41,82" Name="button1" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="75" RenderTransformOrigin="0.5,0.5" >Show <Button.RenderTransform> <RotateTransform x:Name="Trans" Angle="0"></RotateTransform> </Button.RenderTransform> <Button.Triggers> <EventTrigger RoutedEvent="Button.Click"> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetName="Trans" Storyboard.TargetProperty ="Angle" To="360" Duration="0:0:1" FillBehavior="Stop"> </DoubleAnimation> </Storyboard> </BeginStoryboard> </EventTrigger> </Button.Triggers> </Button>

Co widać na powyższym kodzie, animacja spowoduje obrót przycisku w czasie jednej sekundy do kąta pełnego i zatrzymanie się go. Scenariusz do jakiego jest ona dodana zostanie uruchomiony po kliknięciu w przycisk. Zwracam także uwagę na to, że należy określić punkt odniesienia RenderTransformOrigin wewnątrz tagu <Button> .

Podsumowanie

Windows Presentation Foundation to technologia, w której możemy stworzyć dużo bardziej zaawansowane interfejsy niż w Framework 2.0 dzięki takim narzędziom, jak na przykład transformacje graficzne. Niestety nie sposób jest pokazać wszystkich możliwości WPF w jednym artykule. Bardzo ciekawym dodatkiem jest możliwość tworzenia animacji. Za pomocą styli i szablonów możemy w łatwy sposób poprawiać wygląd naszej aplikacji. WPF posiada także obsługę multimediów, dzięki czemu możemy w programie wyświetlić przykładowo plik Windows Media Player.

Wszystko to zapewnia język XAML, który jest bardzo łatwy do przyswojenia dla użytkowników znających techniki ASP, HTML i XML. To tylko niektóre z zalet Windows Presentation Foundation; zachęcam wszystkich do zaktualizowania wersji systemu Framework poprzez zainstalowanie dodatku ze strony Microsoft. Można tam również znaleźć opis dostępnych tagów w kodzie XAML oraz sposób realizacji przykładowych programów. Mam nadzieję, że jeśli ktoś jeszcze nie przekonał się do WPF, to po przeczytaniu tego artykułu zmienił swoje zdanie.

Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży
Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży

Wydarzenia