Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Instytut Informatyki UP-H w Siedlcach 1/91 dr Grzegorz Terlikowski WPF/Silverlight.

Podobne prezentacje


Prezentacja na temat: "Instytut Informatyki UP-H w Siedlcach 1/91 dr Grzegorz Terlikowski WPF/Silverlight."— Zapis prezentacji:

1 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach 1/91 dr Grzegorz Terlikowski WPF/Silverlight

2 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach 2/91 Microsoft WPF  WPF (Windows Presentation Fundation) – jest frameworkiem UI następnej generacji do tworzenia RIA firmy Microsoft – jest następcą Windows Forms.  Prace rozpoczęły się w 2002 roku natomiast pierwsza wersja została udostępniona w 2006 roku wraz z.NET Framework 3.0.  Bazuje na platformie.NET dzięki czemu pozwala aplikacje można pisać w dowolnym języku programowania opartym na CLR (Common Library Runtime).  Ponadto wspiera także technologie AJAX.

3 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach 3/91 Microsoft Silverlight  Silverlight znany wcześniej jako WPF/E jest technologią internetową umożliwiającą prezentację treści multimedialnych w oknie przeglądarki.  Prace rozpoczęły się w 2005 roku, natomiast pierwsza wersja ukazała się w grudniu 2006.  Obie technologie bazują na silniku renderującym, wykorzystującym akcelerację sprzętową nowoczesnych kart graficznych.

4 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach 4/91 Microsoft Silverlight Do działania wymaga:  zainstalowania przeglądarce  Windows - wtyczki Silverlight plugin  opensorsowego pluginu Moonlight lub oprogramowania Wine.  Od wersji Silverlight 3 może działać poza przeglądarką, w bezpiecznym sandbox-ie  Istnieją też (okrojone) biblioteki pod Windows Phone. Przeznaczenie:  Różne przeglądarki internetowe,  Różne systemy operacyjne.

5 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach 5/91 Microsoft Silverlight - architektura  Możliwość wykorzystania języków.NET, Python i Ruby,  W skład Silverlight wchodzi język XAML (eXtensible Application Markup Language) – podzbiór WPF,  Kod XAML może być umieszczony w: treści strony, osobnym pliku lub pakiecie,  Dokumenty XAML dostępne są z poziomu JavaScript za pośrednictwem modelu DOM,  Możliwość uruchomienia programu w lokalnej piaskownicy (poza przeglądarką),

6 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach 6/91 Microsoft Silverlight – narzędzia (1) Zestaw aplikacji pakietu Expression Studio: 1.Expression Web - wizualny edytor stron WWW. 2.Expression Media - aplikacja do zarządzania multimediami w projekcie. 3.Expression Design - aplikacja graficzna pozwalająca na tworzenie elementów graficznych do wykorzystania w interfejsie aplikacji Silverlight. Wspiera między innymi formaty Adobe PSD (.PSD) i Adobe Illustrator (.AI) oraz Windows Media Photos (.WDP,.HDP). 4.Expression Blend - program podobny do AdobeFlash Builder. Pozwala na tworzenie gotowych interfejsów graficznych aplikacji, także animacji, oraz na podgląd i modyfikację pliku XAML, jaki powstanie podczas eksportu danych graficznych. 5.Expression Encoder - narzędzie do przygotowywania wideo (kodowanie do WMV w standardzie VC-1 (część standardu Blue- Ray) oraz H.264 (format MPEG)) wykorzystywanego przez odtwarzacz Microsoft Silverlight.

7 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach 7/91 Microsoft Silverlight – narzędzia (5) Dodatkowe narzędzie:  Microsoft Deep Zoom Composer – Program pozwala w trzech krokach (import, ułożenie sceny i eksport) zoptymalizować wyświetlanie fotografii.  Elementy graficzne zostają podzielone na fragmenty, a te z kolei zapisane w różnych rozmiarach.  Dzięki temu potem na stronie możemy je płynnie powiększać.  Plik wynikowy możemy umieścić bezpośrednio w kodzie HTML lub wskazać jako źródło danych dla kontrolki MultiScaleImage.

8 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach 8/91 Microsoft Silverlight - możliwości Silverlight (podobnie jak Flex)jest idealnym rozwiązaniem następujących sytuacjach, obejmujących wiele rzeczywistych zastosowań:  dostarczanie multimediów przez Internet — rozbudowane prezentacje łączące zdarzenia, materiały wideo i marketingowe, dynamiczne pliki wideo z reklamami, odtwarzanie plików dźwiękowych itp.;  wyspy bogatej zawartości na stronie (miniaplikacje) — okolicznościowe gry i gadżety;  elementy wizualizacyjne — elementy nawigacyjne, wizualizacja danych, reklamy.

9 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Microsoft Silverlight – zalety Zalety:  Działa na wielu przeglądarkach i pod kontrolą różnych systemów operacyjnych (głównie Windows i Macintosh),  Aplikacje Silverlight mogą być w dużym stopniu tekstowe, co ma ułatwić ich pozycjonowanie w wyszukiwarkach,  Pozwala tworzyć aplikacje o bardziej efektownym wyglądzie w porównaniu ze standardowymi rozwiązaniami,  Zaawansowana obsługa multimediów (audio i wideo),  Wspiera wiele technologii firmy Microsoft (WCF, LINKQ).  Niezależność od serwerów WWW; 9/91

10 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Microsoft Silverlight – wady Wady:  Większy rozmiar przesyłanych plików ze względu na brak kompresji,  Pod linuxem trzeba korzystać z niewspieranego już opensource-owego playera (Moonlight) lub oprogramowania Wine (pod nazwą pipelight).  Mniejsza w porównaniu z Flash popularność wśród programistów spowodowana niechęcią użytkowników do instalowania dodatkowego plugina, 10/91

11 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach XAML(eXtensible Application Markup Language 11/91

12 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Język XAML  XAML(eXtensible Application Markup Language), jest opartym na XML znacznikowym językiem programowania.  W tagach można znaleźć różne słowa kluczowe, które mogą oznaczać nazwę klasy, jej właściwości itd.  Zadaniem kompilatora XAML-a jest przepisywanie ich do wspólnego środowiska CLR. 12/91

13 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Język XAML - Własności Istnieją dwa podstawowe sposoby deklarowania właściwości w XAML-u. Składnia atrybutowa (ang. attribute syntax) – wszystkie własności obiektu są podawane wewnątrz głównego tagu i są nazywane atrybutami. Składnia elementów własności (ang. property element syntax) – kosztuje programistę więcej wysiłku, ale w wielu sytuacjach (w przypadku zagnieżdżania obiektów) jest koniecznością. Składnia mieszana – nic nie stoi na przeszkodzie, aby mieszać obydwa sposoby definiowania własności Obiektów. 13/91

14 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Język XAML – Atrybuty dołączone  Język XAML udostępnia ciekawy mechanizm dołączonych właściwości (ang. attached properties).  Działanie polega na tym, że istnieją pewne szczególne właściwości, które mogą być przypisane do jakiegokolwiek elementu wizualnego technologii Silverlight.  Właściwości dołączone nie muszą występować na liście członków danej klasy. typ obcy typ obca własność wartość 14/91

15 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Język XAML – Korzeń dokumentu  Silverlight umożliwia tworzenie własnych kontrolek,  Najprostszą metodą jest dziedziczenie po klasie UserControl, lub Control (jeśli programista chce mieć możliwość używania szablonów na swojej kontrolce),  Korzeniem dokumentu. xaml jest element UserControl,  Pisanie aplikacji Silverlight jest zawsze tworzeniem nowej kontrolki. 15/91

16 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Microsoft Silverlight – Język XAML – Przestrzenie nazw  Domyślna przestrzeń nazw – zawarte są w niej definicje obiektów, których używamy w aplikacji ( Button, StackPanel, TextBox ) xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  Dodatkowa przestrzeń nazw „ x ” – zawiera kilka ważnych konstrukcji, np.  x:Key – ustala unikalny klucz w katalogu zasobów,  x:Name – ustala unikalną nazwę obiektu.  x:Class – definiuje przestrzeń nazw i klasę, która dostarcza code-behind. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 16/91

17 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Język XAML – domyślne własności znaczników  Własność domyślna, nazywana jest też treścią znacznika, jest to cecha języka XAML, dzięki której w pewnych przypadkach nie musimy pisać w kodzie nazwy własności, którą definiujemy (podobnie jest we Flex).  Przykładowo domyślną własnością dla obiektów klas:  UserControl i Button jest Content,  TextBlock jest Text,  dla wszystkich kontenerów (np. Canvas, Grid, StackPanel ) własnością domyślną jest Children, 17/91

18 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Język XAML – Zdarzenia  Zdarzenia deklarowane są w pliku. xaml, natomiast ich obsługa zakodowana jest w pliku.cs (dla C#) lub.vs (dla Visual Basic).  Przypisanie zdarzenia Click o nazwie Button_Click wygląda podobnie jak definicja własności napisana przy pomocy składni atrybutowej, jednak nie istnieje w tym przypadku alternatywny sposób zapisu. 18/91

19 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Język XAML – obsługa zdarzeń  Kontrolki XAML-a mogą być jednoznacznie identyfikowane i modyfikowane z poziomu kodu za pomocą nazw. W tym celu należy w kontrolce należy określić atrybut x:Name.  Jednym z argumentów wywołania funkcji obsługującej zdarzenie jest obiekt, który to zdarzenie wywołał. 19/91

20 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Język XAML – Rozszerzenia znaczników  Rozszerzenia znaczników (ang. markup extensions) to własność XAML-a, dzięki której możliwe jest realizowanie skomplikowanych mechanizmów, takich jak szablony, czy bindowanie danych,  Rozszerzenia definiujemy najczęściej wykorzystując składnię atrybutową,  Składnia przyjmuje postać: gdzie, definicja rozszerzenia zależy od tego z jakim typem rozszerzenia mamy do czynienia i jest w postaci: {TypRozszerzenia ArgumentyRozszerzenia} UWAGA: Niemal każdy element wizualny może posiadać własny tzw. katalog zasobów. W takim katalogu możemy definiować zasoby, które będą dostępne dla niego i jego dzieci. 20/91

21 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Język XAML – Wiązanie danych – Rozszerzenia znaczników – Typy Można korzystać z następujących typów rozszerzeń: 1.StaticResource – statyczne zasoby, są przypisywane do komponentu tylko raz, podczas uruchomienia aplikacji. Gdy zasób zostanie zmieniony, komponenty które z niego korzystały nie zaktualizują swoich własności. 2.DynamicResource – dynamiczne zasoby będą na bieżąco aktualizowane również w komponentach je wykorzystujących. 3.Binding – wiążące dane. 21/91

22 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Język XAML – Wiązanie danych – Przykład rozszerzenia statycznego Składnia rozszerzenia statycznego wygląda następująco: Gdzie, KluczZasobu to nazwa zasobu, dzięki której jest on identyfikowany w katalogu. 22/91

23 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Silverlight – Kontenery i pozycjonowanie 23/91

24 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Pozycjonowanie Pozycjonowanie kontrolek odbywa się przy pomocy kontenerów. Silverlight 5 posiada tylko trzy typy kontenerów (w WPF jest 7) 1.Panel stosu – StackPanel, 2.Siatka – Grid, 3.Płótno – Canvas, Pozycję obiektu określają: 1.Zależność rodzic-dziecko (element musi być wewnątrz kontenera względem, którego jest pozycjonowany), 2.Właściwości kontenera (np. Orientation w StackPanel ), 3.Atrybuty dołączone do elementu pozycjonowanego (np. Canvas.Left ), Istnieją dwa typy pozycjonowania relatywne ( StackPanel, Grid ) i absolutne ( Canvas ). 24/91

25 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach  Grid, jest najbardziej zaawansowanym kontenerem Silverlight.  Definiowanie wierszy/kolumn siatki odbywa się poprzez ustawienie własności ColumnDefinitions i RowDefinitions.  Wartości można podawać w sposób statyczny(piksele) lub procentowy(100% jest reprezentowane przez *), Pozycjonowanie – Grid 25/91

26 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Pozycjonowanie – Canvas Canvas jest jedynym kontenerem umożliwiającym pozycjonowanie absolutne. Odbywa się to poprzez ustawienie dołączonych atrybutów Canvas.Left, Canvas.Top oraz Canvas.ZIndex. Domyślnie wszystkie właściwości posiadają wartość 0. 26/91

27 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Kontrolki – biblioteki Własności kontrolek zależą od klas, po których dziedziczą. Kontrolki Silverlight mogą dziedziczyć po klasach takich jak: 1.Control (np. Button, ListBox ), 2.Shape (np. Rectangle, Elipse, Path ), 3.Geometry (np. PathGeometry ), 4.Panel (np. Grid, StackPanel, Canvas ), Powyższe elementy dziedziczą z jeszcze bardziej ogólnych klas takich jak: UIElement lub FrameworkElement. 27/91

28 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Kontrolki – Komponowanie  Kontrolki w WPF/Silverlight są wyjątkowo podatne na komponowanie.  Można użyć kontrolki dowolnego typu jako zawartości innej.  Właściwe używanie tej cechy umożliwia osiągnięcie wyjątkowych efektów,  Przykładowo, można umieścić obrazek w przycisku. 28/91

29 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Grafika i multimedia w Silverlight 29/91

30 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Grafika i multimedia WPF i Silverlight udostępniają różnego rodzaju elementy graficzne. Wśród nich są:  Pędzle ( Brush ),  Figury geometryczne ( Rectangle, Ellipse ),  Ścieżki ( Path )  Obrazy ( Image ),  MediaElement – odtwarzanie filmów,  Tworzenie galerii z wykorzystaniem technologii DeepZoom ( MultiScaleImage ). Ponadto można korzystać z:  Bitmap API,  PixelShaders,  Praca z tekstem (wsparcie dla lokalnych czcionek),  Akceleracja hardwerowa GPU,  Kolory systemowe. 30/91

31 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Grafika i multimedia – Pędzle  Mechanizm pędzli pozwala na „malowanie” elementów interfejsu.  Dzięki pędzlom możliwe jest wypełnienie obiektu nie tylko jednolitym kolorem, lecz również gradientami, bitmapami, a nawet plikami filmowymi.  Pędzle mogą być użyte do malowania całych kontrolek, jak i teł oraz obramowań. 31/91

32 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Grafika i multimedia – Pędzle – Typy Wyróżniamy następujące pędzle:  SolidColorBrush – pędzel o jednolitym kolorze,  LinearGradientBrush – pędzel z liniowym gradientem,  RadialGradientBrush – pędzel z radialnym gradientem,  ImageBrush – pędzel, którego źródłem jest plik graficzny,  VideoBrush – pędzel, którego źródłem jest plik wideo. 32/91

33 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Wiązanie danych i Szablony 33/91

34 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Wiązanie danych 1.Dzięki wiązaniu danych możemy sprzęgnąć (związać) wartość własności obiektu z polem napisanej przez nas klasy, 2.Wiele kontrolek (wiele właściwości) może być podwiązane pod jedno pole klasy, 3.Zmiana własności w jednej kontrolce, powoduje aktualizację drugiej kontrolki. Kontrolka1 Własność wiążąca Klasa wiążąca Pole wiążące Kontrolka2 Własność wiążąca 34/91

35 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Wiązanie danych – Klasy wiążące Aby związać dane programista powinien: 1.Napisać klasę wiążącą (w pliku.cs), przy czym musi ona spełniać następujące warunki:  Musi implementować interfejs typu INotifyPropertyChanged, który wymusza zdefiniowanie zdarzenia typu PropertyChangedEventHandler,  Musi mieć zestaw pól, które służą do wiązania własności kontrolek,  Musi zgłaszać zmianę wartości któregokolwiek pola, 2.W XAML u rozszerzyć własności kontrolek, które mają być związane z klasą przy użyciu znacznika typu Binding. 35/91

36 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Wiązanie danych – Przykład 36/91

37 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Wiązanie danych – sposoby przepływu danych Mode jest to opcja, która definiuje, w jaki sposób mają przepływać dane w wiązaniu. Może ona przyjmować trzy różne wartości:  OnWay (domyślna) – przepływ jednostronny. Wartość własności zmieni się tylko wtedy, gdy zmieni się pole klasy z nią związanej,  TwoWay – przepływ dwustronny. Pole klasy zmieni się również, gdy zmieni się wartość własności komponentu,  OneTime – przepływ jednorazowy. Wartość własności zostanie zaktualizowana tylko przy uruchamianiu aplikacji. 37/91

38 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Wiązanie danych – przypisywanie źródeł danych Aby dane zawarte w klasie wiążącej były dostępne z poziomu różnych kontrolek, należy: 1.ustawić właściwość DataContext tzw. kontekst danych (ang. data context) dla ich rodzica. Ten sposób jest wykorzystywany przy bindingu do 1 wartości, lub 2.ustawić ich właściwości ItemsSource (dla każdej z nich z osobna). Ten sposób jest wykorzystywany głównie przy bindingu do kolekcji. 38/91

39 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Wiązanie danych – definiowanie kontekstu danych (1) Kontekst danych definiuje jakiego obiektu powinny używać kontrolki podrzędne jako swojego źródła danych dla powiązań. Aby ustawić kontekst danych należy w obsłudze zdarzenia Loaded, (które jest wywoływane przy starcie aplikacji): 1.Utworzyć instancję klasy wiążącej, 2.Ustawić ją jako kontekst danych (własność DataContext ). 39/91

40 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Wiązanie danych – definiowanie kontekstu danych (2)  Kontekstu nie trzeba przypisywać do każdej kontrolki (chociaż nie jest to zakazane), w której definiowane jest wiązanie (binding).  Zamiast tego przypisujemy kontekst dla kontrolki nadrzędnej.  Kontekst danych jest dziedziczony przez dzieci obiektu, dla którego został zdefiniowany 40/91

41 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Wiązanie danych – DataGrid  DataGrid to kontrolka, która znajduje się w bibliotece System.Windows.Controls.Data  Daje ona możliwość elastycznego wyświetlania dużych porcji danych w postaci tabelarycznej.  Dane wyświetlane są w kolumnach i wierszach.  Typy kolumn możemy zdefiniować, wybierając jedną z trzech możliwości: 1.DataGridTextColumn – wyświetla dane w formie tekstowej, 2.DataGridCheckBoxColumn – pozwala na przedstawienie wartości logicznych w formie CheckBox -a, 3.DataGridTemplateColumn – pozwala stworzyć kolumny z dowolną zawartością, korzystając z mechanizmu szablonów. 41/91

42 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Wiązanie danych – właściwość ItemsSource Aby wypełnić kontrolkę informacjami, należy skorzystać z właściwości ItemsSource, której należy przypisać źródło danych – może nim być dowolna kolekcja implementująca interfejs IEnumerable. W analogiczny sposób możemy postąpić z kontrolkami ListBox i ComboBox. 42/91

43 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Wiązanie danych – klasy złożone jako źródło danych Źródłem danych może być również lista obiektów pewnej klasy. Kontrolka dobiera typy i nazwy kolumn, dzięki domyślnemu ustawieniu atrybutu AutoGenerateColumns na True. 43/91

44 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Szablony (1) Po wyłączeniu flagi AutoGenerateColumns można samodzielnie decydować o wyglądzie kontrolki. DataGridTemplateColumn jest szablonem całej kolumny umożliwiającym zdefiniowanie własnego wyglądu komórki, przy wykorzystaniu jego właściwości:  CellTemplate – definiuje wygląd komórki w trybie do odczytu,  CellEditingTemplate – definiuje wygląd komórki w trybie edycji, Wartościami powyższych właściwości są szablony DataTemplate i w których definiujemy jak dana komórka powinna wyglądać w poszczególnych trybach. 44/91

45 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Szablony (2) Po wyłączeniu flagi AutoGenerateColumns można samodzielnie decydować o wyglądzie kontrolki. 45/91

46 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Szablony – Konwertowanie danych (1) Z komórkami można powiązać tzw. konwertery danych, które formatują dane wyświetlane w komórce. Aby utworzyć i podłączyć konwerter danych należy: 1.Zaimplementować interfejs IValueConverter, który udostępnia dwie metody Convert i ConvertBack, 2.Utworzyć obiekt konwertera jako statyczne źródło danych w pliku *.xaml, 3.podłączyć go do komórki wykorzystując atrybut Converter. Brzydko 46/91

47 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Szablony – Konwertowanie danych (2) Implementacja konwertera danych Przestrzeń nazw, do której należy nasz konwerter Tworzenie konwertera jako zasobu Ustawienie konwertera jako zasobu statycznego 47/91

48 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Szablony – Sekcja szczegółów w DataGrid Dodatkowo do kontrolki DataGrid, można dodać sekcję szczegółów. Odbywa się to przy użyciu szablonu RowDetailsTemplate. Sekcja szczegółów ma postać dodatkowego wiersza pojawiającego się bezpośrednio pod wybranym elementem. 48/91

49 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Szablony – Szablony jako zewnętrzne zasoby (1) Wszystkie szablony można umieścić jako zasób, który jest następnie podłączany do kontrolki DataGrid. 49/91

50 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Szablony – Szablony jako zewnętrzne zasoby (2) Jeszcze innym rozwiązaniem jest utworzenie katalogu zasobów, jako zewnętrznego pliku XAML. 50/91

51 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Szablony – Katalogi zasobów W przypadku gdy repozytoria szablonów znajdują się w innym katalogu niż projekt, można je podłączyć w następujący sposób. lub W ten sposób można współdzielić katalogi zasobów pomiędzy różnymi aplikacjami 51/91

52 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Szablony – Szablony w innych kontrolkach Szablony możemy zdefiniować również dla innych komponentów np. ListBox i ComboBox. 52/91

53 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje w Silverlight 53/91

54 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – Secenariusze  Animacje w Silverlight można grupować wykorzystując obiekty Storyboard, czyli scenariusze.  Scenariusze mogą składać się z jednej lub kilku animacji.  Klasa Storyboard posiada atrybuty, które są dołączane przez (zagnieżdżone w nim) obiekty animacji i są niezbędne do ich prawidłowego działania:  Storyboard.TargetName – nazwa obiektu (określonego przez atrybut x:Name ), którego dotyczy animacja.  Storyboard.TargetProperty – nazwa właściwości, której wartości mają być animowane (podmienione przez animację). 54/91

55 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – Scenariusze (2) Scenariusze są traktowane jako zasób i są umieszczane w znaczniku Resources, lub w katalogu zasobów. Aby uruchomić scenariusz należy wywołać na nim metodę Begin(). 55/91

56 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – Typy Silverlight wspiera dwa typy animacji: 1.Animacje podstawowe – są to animacje typu From/To/By, gdzie:  From – określa początkową wartość własności,  To – określa końcową wartość własności  By – wartość, o którą ma się zmienić wartość początkowa. 2.Animacje zaawansowane – wykorzystują one mechanizm klatek kluczowych ( Frames ). Ten typ animacji pozwala na dokładniejszą kontrolę, 56/91

57 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – DoubleAnimation Najprostszą animacją typu From/To/By jest DoubleAnimation. Animacja ta produkuje wartości typu Double. Za jej pomocą można animować takie właściwości jak Width, Height, Opacity, a także Canvas.Left i Canvas.Top. Oś czasu 57/91

58 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – ColorAnimation ColorAnimation podmienia wartości typu Color. Najczęściej wykorzystuje się ją do animowania własności Fill, Foreground i Background. Oś czasu 58/91

59 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – PointAnimation PointAnimation produkuje wartości typu Point. Oś czasu 59/91

60 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – Sposoby wskazania własności do animowania Istnieją dwa sposoby wskazania własności do animowania:  Wskazanie pośrednie  Wskazanie bezpośrednie 60/91

61 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – Klatki kluczowe (1)  Jeśli chcemy mieć wpływ na dynamikę animacji, musimy skorzystać z mechanizmu klatek kluczowych.  Każda prosta animacja ma swój odpowiednik w postaci animacji z klatkami kluczowymi.  DoubleAnimationUsingKeyFrames – produkuje wartości typu Double.  ColorAnimationUsingKeyFrames – produkuje wartości typu Color,  PointAnimationUsingKeyFrames – produkuje wartości typu Point,  ObjectAnimationUsingKeyFrames – produkuje obiekty, 61/91

62 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – Klatki kluczowe(2)  Animacje z klatkami kluczowymi posiadają (zamiast From/To/By ) właściwość KeyFrames, która jest kolekcją przechowującą klatki.  Klatki kluczowe definiują jakie wartości ma generować animacja i w jaki sposób ma to robić.  Właściwość KeyFrames jest własnością domyślną animacji.  Każda animacja wykorzystująca klatki kluczowe wykorzystuje własny zestaw klatek.  Podstawowym rodzajem klatki dla animacji DoubleAnimationUsingKeyFrames jest LinearDoubleKeyFrame. 62/91

63 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – Klatki kluczowe – właściwości Wszystkie klatki posiadają wspólne właściwości oraz takie same typy interpolacji. Wspólnymi właściwościami wszystkich klatek są: 1.KeyTime – określa czas (w formacie h:m:s) wystąpienia animacji, 2.Value – wartość własności animowanej w danej klatce kluczowej. Jej typ zależy od tego, jakiego rodzaju animacji używamy, Powyższy zapis oznacza, że animowana własność ma mieć wartość równą 1, w drugiej sekundzie animacji. 63/91

64 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – Klatki kluczowe – Interpolacje  Animacje są określonego typu, trwają pewien czas oraz mają swoją wartość początkową i końcową.  Interpolacja jest sposobem, w jaki generowane są wartości animacji od wartości początkowej do końcowej.  Interpolacje są następujące:  Liniową (ang. linear) – kolejne wartości różnią się o stałą wartość,  Dyskretną (ang. discrete) – polega na tym, że przez cały czas trwania animacji generowana jest wartość początkowa, a w momencie jej zakończenia produkowana jest wartość końcowa,  Splajnową (ang. spline) – daje największe możliwości i polega na tym że określany jest kwadratowy punkt Beziera, który implikuje dynamikę generowania wartości. 64/91

65 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – Klatki kluczowe – Interpolacja liniowa Oś czasu 65/91

66 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – Klatki kluczowe – Interpolacja dyskretna Natychmiastowy przeskok Złożona wartość, którą jest obiekt 66/91

67 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – Klatki kluczowe – Interpolacja splajnowa  Klatki z interpolacją splajnową posiadają dodatkową właściwość KeySpline, której wartość określa sposób przeprowadzania tego typu interpolacji.  Wartość KeySpline to definicja kwadratowego punktu Beziera. Założeniem jest że KeySpline zaczyna się w punkcie 0.0,0.0, a kończy 1.0,1.0, a programista ma wpływ na pozostałe dwa punkty kontrolne. 67/91

68 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – Klatki kluczowe – Interpolacja splajnowa W powyższym przykładzie, animowana Elipsa... 1.Dynamicznie przyspiesza, 2.w mniej niż połowie drogi powoli zwalnia, 3.Zatrzymuje się, 4.Zaczyna powoli przyspieszać, 5.Dynamicznie zatrzymuje się we wskazanym miejscu. 68/91

69 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – Funkcje dynamiki  W Silverlight 3 zostały wprowadzone funkcje dynamiki, które są umieszczane wewnątrz właściwości EasingFunction.  Każda funkcja dynamiki posiada właściwość EasingMode, która może przyjmować wartość EaseIn, EaseOut lub EaseInOut.  EasingFunction także może być elementem animacji prostych. 69/91

70 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – Funkcje dynamiki  W przypadku animacji wykorzystujących klatki kluczowe, EasingFunction jest właściwością specjalnych klatek kluczowych,  Easing_TypAnimacji_KeyFrame. Funkcje dynamiki można postrzegać jako kolejną interpolacje. 70/91

71 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – Funkcje dynamiki – Rodzaje Silverlight 4 posiada bogaty zbiór funkcji dynamiki. 71/91

72 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Animacje – Klatki kluczowe w Expression Blend Expression Blend posiada narzędzie Objects and Timeline, wspierające proces tworzenia animacji z wykorzystaniem klatek kluczowych. 72/91

73 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Transformacje 3D w Silverlight 73/91

74 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Transformacje 3D  Technologia Silverlight (od wersji 3) umożliwia obrót, każdego elementu dziedziczącego po UIElement w 3 wymiarach (3D) przez ustawienie własności Projection,  Silverlight 4 nie posiada prawdziwego środowiska 3D – w prawdziwym 3D wszystkie obiekty żyją w jednej przestrzeni, natomiast w Silverlight, każdy obiekt posiada własną przestrzeń,  Aby dokonać iluzji 3D programista musi wszystkie obiekty (ich przestrzenie) zsynchronizować. 74/91

75 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Transformacje 3D  Do właściwości Projection można przypisać dwa obiekty:  PlaneProjection – do zwykłych projekcji 3D,  Matrix3DProjection – do bardziej wyrafinowanych projekcji,  Każda projekcja logicznie posiada swoją własną kamerę,  Aby spozycjonować więcej niż jeden obiekt względem tej samej kamery, należy użyć atrybutów GlobalOffsetX, GlobalOffsetY, i GlobalOffsetZ.  Aby spozycjonować obiekt względem lokalnej kamery należy użyć atrybutów LocalOffsetX, LocalOffsetY, i LocalOffsetZ. 75/91

76 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Projekcje 3D 76/91 Obrót względem wybranej osi układu współrzędnych umożliwiają atrybuty RotationX, RotationY i RotationZ.

77 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Projekcje 3D 77/91

78 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Projekcje 3D Za pomocą atrybutów CenterOfRotationX, CenterOfRotationY i CenterOfRotationZ, możemy ustalać punkt względem którego nastąpi obrót. 78/91

79 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Transformacje 3D – XNA 3D API  W wersji Silverlight 5 wprowadzono XNA 3D API,  Microsoft XNA jest to zbiór narzędzi, wykorzystujących środowisko kodu zarządzanego, dzięki którym programista może wytwarzać np. komputerowe gry wideo,  Możliwe zastosowanie – aplikacje dla sektora medycznego, logistycznego i finansowego.  Silverlight 5 Toolkit – zbiór dodatkowych, darmowych komponentów, które ułatwiają korzystanie z Silverlight.  W zakresie wsparcia dla XNA 3D API, Silverlight 5 Toolkit, umożliwia programistom korzystanie z szablonów, przyspieszających proces tworzenia projektu w technologii Silverlight, w oparciu o XNA.  Ponadto, pakiet ten zawiera ciekawe przykłady z kodem źr. 79/91

80 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Projekcje 3D 80/91 http://www.charlespetzold.c om/blog/2009/07/Taper- Transforms-with- Matrix3DProjection-An- Analytical-Approach.html http://www.charlespetzold.c om/silverlight/Matrix3DProj ectionDemo/Matrix3DProjec tionDemo.html

81 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Technologia Deep Zoom i Deep Zoom Composer 81/91

82 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Deep Zoom  Technologia Deep Zoom umożliwia płynne przeglądanie i powiększanie ogromnych obrazów,  Ładowane są tylko te dane, które aktualnie ogląda użytkownik,  Dzięki darmowemu narzędziu Deep Zoom Composer, możliwe jest szybkie utworzenie własnej animowanej galerii, zawierającej zdjęcia o wysokiej rozdzielczości,  Efekt działania Deep Zoom Composer-a można opublikować na stronie WWW,  Galerię cechują: płynny zoom, animacje, intuicyjny sposób nawigacji. 82/91

83 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Deep Zoom  Narzędzie dzieli obraz na fragmenty 256x256 pikseli,  Następnie generuje zdjęcia niższej rozdzielczości. 83/91

84 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Deep Zoom Przykładowa galeria w technologii Deep Zoom 84/91

85 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Deep Zoom  Obrazy najniższej rozdzielczości są wyświetlane w pierwszej kolejności,  Po pobraniu obrazów lepszej jakości następuje płynne podmienianie,  Narzędzie Deep Zoom Composer przygotowuje grafiki, oraz plik xml z opisem galerii.  Efekt wyświetlany jest przez kontrolkę MulitScaleImage. 85/91

86 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach 86/91 Modern UI

87 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Modern UI  Wraz z pojawieniem się Windows 8, firma Microsoft zaprezentowała całkowicie nowy interfejs użytkownika, powstały w oparciu o Modern UI.  Modern UI jest językiem projektowania inspirowanym znakami, które można znaleźć wśród infrastruktury transportowej – na przystankach metra, czy lotniskach.  Cechy:  przejrzyste napisy – specjalna czcionka Segoe,  ascetyczne piktogramy,  minimalizm,  brak ozdobników (np. gradientów czy zaokrąglonych narożników),  kontrastowa kolorystyka. 87/91

88 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Modern UI – rozkład  System Windows posiada interfejs Modern UI, który przeplata się z tradycyjnym pulpitem.  Wprowadza nowy rozkład elementów:  Zawiera grupę kafelków  Każdy kafelek reprezentuje aplikację Modern UI lub aplikację Desktopową  Horyzontalny scroling  Zunifikowana nawigacja myszą i dotykiem. 88/91

89 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach

90 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Modern UI – WinJS  Windows Library for JavaScript (WinJS) dostarcza wysokiej jakości infrastrukturę wsperającą:  Sterowanie stronami,  Bindowanie danych,  Wysokowydajne kontrolki takie jak:  ListView,  FlipView,  SematicZoom.  WinJS można wykorzystywać do tworzenia aplikacji:  Windows Runtime,  Strony internetowe,  Aplikacjach bazujących na HTML – np., Apache Cordova. 90/91

91 g.terlikowski@gmail.com Instytut Informatyki UP-H w Siedlcach Modern UI – rozkład Możliwość pobrania „Modern UI for WPF Templates” dla Visual Studio 2012 i 2013, umożliwiającego tworzenie aplikacji WPF z Modern UI. Szablony projektów (Visual C#\Windows)  Modern UI WPF Application  Modern UI WPF Navigation Application Elementy szablonów  Basic Page  List Page  Split Page  Tab Page  Theme  Modern Dialog  Modern Window  Modern Button 91/91


Pobierz ppt "Instytut Informatyki UP-H w Siedlcach 1/91 dr Grzegorz Terlikowski WPF/Silverlight."

Podobne prezentacje


Reklamy Google