Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.



Podobne dokumenty
Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

WPF 4.5 : księga eksperta / Adam Nathan. Gliwice, cop Spis treści

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

Windows Presentation Foundation

STRONA GŁÓWNA SPIS TREŚCI. Zarządzanie zawartością stron... 2 Tworzenie nowej strony... 4 Zakładka... 4 Prawa kolumna... 9

SL: warstwy aplikacji. Wykład 4 Silverlight

INTERAKTYWNA APLIKACJA MAPOWA MIASTA RYBNIKA INSTRUKCJA OBSŁUGI

Microsoft Management Console

I. Zakładanie nowego konta użytkownika.

46 Korzystanie z wyświetlacza. System Microsoft Windows XP. System Microsoft Windows Vista

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

VinCent Office. Moduł Drukarki Fiskalnej

PERSON Kraków

Nowe funkcjonalności

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

Zmiany w programie C GEO v. 6.5

Kancelaris - Zmiany w wersji 2.50

Instrukcja instalacji oraz wykorzystania podpisu cyfrowego

Instrukcja obsługi panelu operacyjnego XV100 w SZR-MAX-1SX

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Konfiguracja historii plików

Firma Informatyczna JazzBIT

Zarządzanie Zasobami by CTI. Instrukcja

Użytkowanie elektronicznego dziennika UONET PLUS.

Moduł. Rama 2D suplement do wersji Konstruktora 4.6

Instrukcja programu PControl Powiadowmienia.

SZABLONY KOMUNIKATÓW SPIS TREŚCI

Aplikacje internetowe i rozproszone - laboratorium

Programowanie obiektowe i zdarzeniowe wykład 1 Wprowadzenie do programowania zdarzeniowego

Praca na wielu bazach danych część 2. (Wersja 8.1)

Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy)

INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56

Opis zmian funkcjonalności platformy E-GIODO wprowadzonych w związku z wprowadzeniem możliwości wysyłania wniosków bez podpisu elektronicznego

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Modele zawartości. WPF wykorzystuje 4 modele zawartości kontrolek: ContentControl pojedyncza zawartość

Ramki tekstowe w programie Scribus

SINAMICS G120C STARTER. Tworzenie nowego projektu w trybie online.

Archiwum Prac Dyplomowych

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

Instrukcja wprowadzania ocen do systemu USOSweb

Harmonogramowanie projektów Zarządzanie czasem

Przeniesienie lekcji SITA z płyt CD na ipoda touch

Pracownia internetowa w ka dej szkole (edycja 2004/2005)

Tekst ozdobny i akapitowy

Ćwiczenie 6.5. Otwory i śruby. Skrzynia V

INSTRUKCJA KORZYSTANIA Z ELEKTRONICZNEJ ŚCIEŻKI WYKAZÓW

Bazy danych. Andrzej Łachwa, UJ, /15

Systemy mikroprocesorowe - projekt

Centrum Informatyki "ZETO" S.A. w Białymstoku. Instrukcja użytkownika dla urzędników nadających uprawnienia i ograniczenia podmiotom w ST CEIDG

ECDL Advanced Moduł AM3 Przetwarzanie tekstu Syllabus, wersja 2.0

Metody opracowywania dokumentów wielostronicowych. Technologia Informacyjna Lekcja 28

Metoda LBL (ang. Layer by Layer, pol. Warstwa Po Warstwie). Jest ona metodą najprostszą.

REJESTRATOR RES800 INSTRUKCJA OBSŁUGI

Zdalne odnawianie certyfikatów do SWI

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM

Rozliczenia z NFZ. Ogólne założenia. Spis treści

1. Korzyści z zakupu nowej wersji Poprawiono Zmiany w słowniku Stawki VAT Zmiana stawki VAT w kartotece Towary...

Wtedy wystarczy wybrać właściwego Taga z listy.

CitiDirect EB - Mobile

Specyfikacja techniczna banerów Flash

enova Workflow Obieg faktury kosztowej

Przewodnik AirPrint. Ten dokument obowiązuje dla modeli atramentowych. Wersja A POL

dbsamples.udl lub przygotowany wcześniej plik dla Excela) i OK,

WordPad. Czyli mój pierwszy edytor tekstu

Jak spersonalizować wygląd bloga?

Instalacja i konfiguracja automatu synchronizacji CDN OFFLINE

SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI

Wartości domyślne, szablony funkcji i klas

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

PODRĘCZNIK UŻYTKOWNIKA

Zainstalowana po raz pierwszy aplikacja wymaga aktualizacji bazy danych obsługiwanych sterowników.

Przedmiot: Projektowanie dokumentów WWW. Laboratorium 3: Strona domowa cz. III Formularze. Opracował: Maciej Chyliński

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

Co nowego w systemie Kancelaris 3.31 STD/3.41 PLUS

0.1 Hierarchia klas Diagram Krótkie wyjaśnienie

elektroniczna Platforma Usług Administracji Publicznej

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

1. Wprowadzenie do WPF i XAML. Tworzenie interfejsu użytkownika.

PRESTASHOP INTEGRATOR XL BY CTI INSTRUKCJA

Spring MVC Andrzej Klusiewicz 1/18

Warszawa, r.

MVVM i XAML w Visual Studio 2015 / Jacek Matulewski. Gliwice, cop Spis treści

Konfiguracja programu Outlook 2007 do pracy z nowym serwerem poczty (Exchange)

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy

Regulamin serwisu internetowego ramowka.fm

2004 Heden Media. Wszelkie prawa zastrzeżone. Wirtualne laboratorium z napędów i sterowania pneumatycznego. Minimalne wymagania

Skitch for Android Instrukcja obsługi 2012 Evernote Corporation Wszelkie prawa zastrzeżone Opublikowano: Jun 19, 2012

Pracownia internetowa w szkole podstawowej (edycja 2004)

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

Instrukcja Obsługi STRONA PODMIOTOWA BIP

Logowanie do mobilnego systemu CUI i autoryzacja kodami SMS

Konfigurator opisuje proces instalacji i konfiguracji karty sieciowej bezprzewodowej D-Link DWL-520+ w systemach /2000/XP /

Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD

Instrukcja instalacji programu Plantator oraz transferu pliku danych z/do PC kolektor danych PT-20

Kilka zasad o których warto trzeba pamiętać

Rejestrator IXR7 Dostęp sieciowy do rejestratora. Rejestrator IXR7. Dostęp sieciowy do rejestratora -1-

emszmal 3: Automatyczne księgowanie przelewów w menedżerze sprzedaży BaseLinker (plugin dostępny w wersji ecommerce)

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

Transkrypt:

Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Redaktor prowadzący: Michał Mrowiec Projekt okładki: Jan Paluch Fotografia na okładce została wykorzystana za zgodą Shutterstock.com Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie?twnoap Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Kody źródłowe wybranych przykładów dostępne są pod adresem: ftp://ftp.helion.pl/przyklady/twnoap.zip ISBN: 978-83-246-3500-9 Copyright Helion 2012 Printed in Poland. Kup książkę Poleć książkę Oceń książkę Księgarnia internetowa Lubię to!» Nasza społeczność

Spis tre ci Podzi kowania... 11 Od autora... 13 Wst p... 15 Wymagane oprogramowanie... 15 Kody ród owe... 16 U yte oprogramowanie... 16 Organizacja podr cznika... 16 Rozdzia 1. Wprowadzenie do WPF... 19 1.1. Rozwój interfejsu u ytkownika... 19 1.2. Cechy charakteryzuj ce WPF... 20 1.3. Wersje WPF... 22 1.3.1. WPF 3.5... 23 1.3.2. WPF 4... 23 Rozdzia 2. XAML... 25 2.1. Wiadomo ci podstawowe... 26 2.2. XAML a XML... 28 2.2.1. Znaki specjalne XAML... 29 2.3. Tagi i atrybuty a klasy, w a ciwo ci i zdarzenia... 30 2.4. Przestrzenie nazw... 31 2.4.1. U ywanie typów z innych przestrzeni nazw... 34 2.5. Sposoby okre lania warto ci w a ciwo ci... 35 2.6. Konwertery typów... 37 2.7. Rozszerzenia znaczników... 37 2.8. Elementy zagnie d one... 41 2.8.1. Element typu content... 42 2.8.2. Kolekcje... 43 2.8.3. Warto, która mo e by przekonwertowana na obiekt... 45 2.9. XAML i kod proceduralny... 45 2.9.1. Kod proceduralny i nieskompilowany XAML... 46 2.9.2. Kod proceduralny i skompilowany XAML... 46 2.10. XAML 2009... 49 2.11. S owa kluczowe XAML... 49 Pytania testowe... 52 Odpowiedzi na pytania... 55

6 Tworzenie nowoczesnych aplikacji graficznych w WPF Rozdzia 3. Podstawy WPF... 57 3.1. Architektura systemu... 57 3.2. Hierarchia klas... 59 3.3. Drzewa logiczne i drzewa prezentacji... 61 3.3.1. Drzewa logiczne... 61 3.3.2. Drzewa prezentacji... 64 3.4. W a ciwo ci zale ne... 68 3.4.1. Implementacja w a ciwo ci zale nych... 69 3.4.2. Powiadamianie o zmianie, wyzwalacze w a ciwo ci... 72 3.4.3. Dziedziczenie warto ci w a ciwo ci... 74 3.4.4. Ostateczna warto w a ciwo ci... 77 3.4.5. W a ciwo ci do czone... 78 Pytania testowe... 80 Odpowiedzi do pyta... 81 Rozdzia 4. Zarz dzanie uk adem graficznym wewn trz paneli... 83 4.1. Czym jest uk ad elementów... 84 4.2. Sterowanie rozmiarem... 85 4.2.1. Height i Width... 85 4.2.2. Margin i Padding... 86 4.2.3. Visibility... 88 4.3. Sterowanie pozycj... 89 4.3.1. HorizontalAlignment i VerticalAlignment... 89 4.3.2. HorizontalContentAlignment i VerticalConentAlignment... 90 4.3.3. FlowDirection... 90 4.3.4. Transformacje... 91 Pytania testowe... 96 Odpowiedzi do pyta... 98 Rozdzia 5. Panele... 99 5.1. Przegl d i klasyfikacja paneli... 99 5.2. Panele interfejsu u ytkownika... 101 5.2.1. Canvas... 102 5.2.2. StackPanel... 104 5.2.3. WrapPanel... 105 5.2.4. DockPanel... 107 5.2.5. Grid... 109 5.3. Tworzenie w asnych paneli... 118 5.3.1. Implementacja pomiarów... 119 5.3.2. Implementacja aran acji... 120 5.3.3. Tworzenie bezu ytecznego i u ytecznego panelu... 121 5.3.4. Tworzenie panelu ko owego... 125 5.4. Pozosta e panele... 132 5.4.1. TabPanel... 132 5.4.2. ToolBarOverflowPanel... 132 5.4.3. UniformGrid... 133 5.4.4. VirtualizingStackPanel... 133 5.4.5. SelectiveScrollingGrid... 134 5.5. Mo liwo ci obs ugi przepe nienia zawarto ci... 134 5.5.1. Przycinanie... 134 5.5.2. Przewijanie... 135 5.5.3. Skalowanie... 136 Pytania testowe... 137 Odpowiedzi do pyta... 141

Spis tre ci 7 Rozdzia 6. Kontrolki... 143 6.1. Podzia kontrolek... 143 6.2. Kontrolki typu Content... 145 6.2.1. Przyciski... 146 6.2.2. Kontrolki informacyjne... 153 6.2.3. Kontenery... 157 6.3. Kontrolki typu Items... 159 6.3.1. Selektory... 159 6.3.2. Kontrolki Menu... 178 6.3.3. Pozosta e kontrolki typu Items... 180 6.4. Kontrolki Ink, tekstowe i inne... 183 6.4.1. Kontrolki zakresu... 183 6.4.2. Kontrolki Ink i tekstowe... 185 6.4.3. Dokumenty... 194 6.4.4. Kontrolki z datami... 201 6.4.5. Kontrolka Image... 205 Pytania testowe... 206 Odpowiedzi do pyta... 211 Rozdzia 7. Struktura i rodzaje aplikacji WPF... 213 7.1. Standardowa aplikacja okienkowa... 213 7.1.1. Klasa Window... 214 7.1.2. Klasa Application... 217 7.1.3. SplashScreen... 221 7.1.4. Okna dialogowe... 221 7.1.5. Zapami tywanie i odczytywanie stanu aplikacji... 226 7.1.6. Okna o niestandardowych kszta tach... 228 7.2. Aplikacje nawigacyjne... 230 7.2.1. Realizacja nawigacji... 231 7.2.2. Przekazywanie danych pomi dzy stronami... 236 7.3. Aplikacje WPF w przegl darce internetowej... 241 7.4. Metody instalacji aplikacji WPF... 243 Pytania testowe... 245 Odpowiedzi do pyta... 247 Rozdzia 8. WPF i Windows 7... 249 8.1. Dostosowywanie paska zada... 249 8.2. Listy szybkiego dost pu... 254 8.2.1. JumpTask... 255 8.2.2. JumpPath... 258 8.3. Aero Glass... 260 Pytania testowe... 264 Odpowiedzi do pyta... 265 Rozdzia 9. Zdarzenia i polecenia... 267 9.1. RoutedEvent... 267 9.1.1. Implementacja zdarze RoutedEvent... 271 9.1.2. Zdarzenia RoutedEvent w praktyce... 275 9.2. Zdarzenia zwi zane z cyklem ycia obiektów... 277 9.3. Zdarzenia wej ciowe... 278 9.3.1. Zdarzenia myszy... 278 9.3.2. Zdarzenia klawiatury... 281 9.3.3. Zdarzenia dotyku i manipulacji... 282

8 Tworzenie nowoczesnych aplikacji graficznych w WPF 9.4. Polecenia... 285 9.4.1. Polecenia wbudowane... 286 9.4.2. Zastosowanie polece w praktyce... 289 Pytania testowe... 292 Odpowiedzi do pyta... 293 Rozdzia 10. Zasoby... 295 10.1. Zasoby binarne... 295 10.1.1. Zasoby binarne w kodzie XAML... 297 10.1.2. Zasoby binarne w kodzie proceduralnym... 299 10.2. Zasoby logiczne... 301 10.2.1. Zasi g zdefiniowanego zasobu... 304 10.2.2. Zasoby statyczne i dynamiczne... 306 10.2.3. Czy wszystko mo e by zasobem?... 308 10.2.4. Zasoby logiczne i kod proceduralny... 310 10.2.5. Krótko o zasobach systemowych... 311 Pytania testowe... 312 Odpowiedzi do pyta... 314 Rozdzia 11. Wi zanie danych... 315 11.1. Podstawy wi zania danych... 316 11.1.1. Definiowanie pierwszego wi zania... 316 11.1.2. Definiowanie wi zania danych w kodzie XAML... 320 11.1.3. Definiowanie wi zania ze zwyk ymi w a ciwo ciami.net... 322 11.1.4. Definiowanie wi zania z ca kolekcj... 326 11.2. Kontrolowanie wy wietlania wi zanych danych... 330 11.2.1. Formatowanie stringu... 331 11.2.2. Szablony danych... 332 11.2.3. Konwertery... 336 11.3. Zarz dzanie kolekcj za pomoc widoku... 341 11.3.1. Sortowanie... 341 11.3.2. Grupowanie... 343 11.3.3. Filtrowanie... 345 11.4. Walidacja danych... 347 11.4.1. Wbudowane mechanizmy walidacji... 348 11.4.2. Definiowanie w asnej walidacji... 353 11.5. Sterowanie przep ywem danych... 354 11.6. Wsparcie dla wielu róde danych... 356 11.6.1. CompositeCollection... 356 11.6.2. MultiBinding... 356 11.6.3. PriorityBinding... 357 Pytania testowe... 357 Odpowiedzi do pyta... 360 Rozdzia 12. Style, szablony, skórki i motywy... 361 12.1. Style... 362 12.1.1. Zarz dzanie wspó dzieleniem stylu... 365 12.2. Wyzwalacze... 369 12.2.1. Property triggers... 370 12.2.2. Data triggers... 371 12.2.3. Warunki logiczne w wyzwalaczach... 375 12.3. Szablon kontrolek ControlTemplates... 377 12.3.1. Zastosowanie wyzwalaczy w szablonach... 382 12.3.2. Zale no od warto ci w a ciwo ci rodziców... 385 12.4. Umieszczanie szablonów kontrolek w stylach... 390

Spis tre ci 9 12.5. Bardziej z o one szablony... 391 12.5.1. Cz ci... 394 12.5.2. Visual State Manager... 398 12.6. Skórki... 404 12.7. Motywy... 409 Pytania testowe... 413 Odpowiedzi do pyta... 417 Rozdzia 13. Grafika 2D... 419 13.1. P dzle klasa Brush... 419 13.1.1. P dzle maluj ce kolorem... 421 13.1.2. P dzle pokrywaj ce... 427 13.1.3. BitmapCacheBrush... 441 13.2. Kszta ty... 445 13.2.1. Ci kie kszta ty klasa Shape... 447 13.2.2. Lekkie kszta ty klasa Geometry... 454 13.3. Klasa Drawing... 464 13.3.1. Klasa Pen... 468 13.3.2. Podsumowanie kszta tów prostych, czyli tworzymy clipart... 469 Pytania testowe... 472 Odpowiedzi do pyta... 477 Rozdzia 14. Grafika 3D... 479 14.1. Pierwsza scena 3D w interfejsie u ytkownika... 480 14.2. Umiejscowienie grafiki 3D w interfejsie u ytkownika... 483 14.3. Uk ad wspó rz dnych w przestrzeni 3D... 484 14.4. Punkt widzenia Camera... 485 14.4.1. Rodzaje kamer... 489 14.5. Transformacje 3D... 492 14.5.1. Translacja... 495 14.5.2. Skalowanie... 496 14.5.3. Obrót... 498 14.5.4. Grupowanie transformacji... 500 14.6. Podstawowy element sceny 3D Model3D... 501 14.6.1. O wietlenie klasa Light... 506 14.6.2. Materia klasa Material... 511 14.6.3. Model3DGroup... 516 14.7. Visual3D... 517 14.7.1. ModelVisual3D... 518 14.7.2. Viewport2DVisual3D... 519 14.7.3. UIElement3D... 521 14.8. Viewport3D... 524 Pytania testowe... 527 Odpowiedzi do pyta... 531 Rozdzia 15. Animacje... 533 15.1. Pierwsza animacja... 534 15.2. Klasy implementuj ce animacje... 537 15.3. W a ciwo ci steruj ce przebiegiem animacji... 540 15.3.1. Duration... 540 15.3.2. From, To, By... 541 15.3.3. BeginTime... 543 15.3.4. AutoReverse... 543 15.3.5. RepeatBehavior... 544 15.3.6. SpeedRatio i przyspieszenie animacji... 545

10 Tworzenie nowoczesnych aplikacji graficznych w WPF 15.4. Umiejscowienie animacji w kodzie XAML... 546 15.4.1. Wyzwalacze EventTrigger... 547 15.4.2. Klasy BeginStoryboard i Storyboard... 548 15.5. Animacje keyframe... 559 15.5.1. Interpolacja liniowa... 561 15.5.2. Interpolacja dyskretna... 563 15.5.3. Interpolacja Spline... 565 15.6. Animacje PathGeometry... 567 15.7. Funkcje u atwiaj ce... 568 Pytania testowe... 570 Odpowiedzi do pyta... 574 Skorowidz... 575

Rozdzia 8. WPF i Windows 7 W tym rozdziale: dostosowywanie paska zada, listy szybkiego dost pu, Aero Glass. Windows 7 posiada nowe funkcje w porównaniu ze swoimi poprzednikami nale do nich na przyk ad listy szybkiego dost pu. WPF w zwi zku z tym posiada API, za pomoc którego mo emy w naszych aplikacjach wykorzystywa te nowe funkcje o tym w a nie b dzie ten rozdzia. Zobaczysz, jak mo na wp ywa na informacje pokazywane w pasku zada, jak w aplikacji WPF mo na manipulowa tym, co jest wy- wietlane w podgl dzie aplikacji, oraz nauczysz si umieszcza zawarto w li cie szybkiego dost pu. Na ko cu rozdzia u porusz kwestie zwi zane z interfejsem Aero Glass zmienimy nasz aplikacj TwitterClient tak, by ca e okno wraz z list wiadomo ci by o przezroczyste. 8.1. Dostosowywanie paska zada Pasek zada w systemie Windows 7 ma troch inny wygl d ni jego poprzednicy, posiada równie pewne nowe funkcje. Zapewne ka dy zauwa y, e w momencie najechania kursorem na pasek zada poszczególne ikony oznaczaj ce aplikacje s kolorowane dominuj c barw. Dodatkowo w przypadku niektórych programów mo na zaobserwowa, e je eli wyst pi b d ich dzia ania, ich ikona w pasku zada staje si czerwona. Jest jeszcze jedna funkcjonalno paska zda, z któr na pewno ka dy mia okazj si spotka je eli pobieramy jakie dane z internetu, ikona przegl darki w pasku zda wskazuje poziom post pu procesu pobierania jest to równie jedna z nowych mo liwo ci manipulacji zachowaniem paska zada. Wszystkie te funkcjonalno ci z wyj tkiem zmiany koloru pod wietlania ikony w pasku zada (w tym przypadku jedyn opcj zmiany koloru pod wietlania aplikacji jest zmiana kolorów ikony) da si zaimplementowa w aplikacji WPF.

250 Tworzenie nowoczesnych aplikacji graficznych w WPF Zacznijmy od tego, co nowego mo emy zaobserwowa w zwi zku z paskiem zada (pomijamy na razie kwestie list szybkiego dost pu omówionych w kolejnych podrozdzia ach). Rysunek 8.1 pokazuje podgl d aplikacji oraz wygl d paska zada wraz z jego poszczególnymi elementami (jako przyk ad w tym rozdziale pos u y nam aplikacja TwitterClient). Rysunek 8.1. Pasek zada wraz z podgl dem programu TwitterClient oraz opisem poszczególnych jego elementów Klas, za pomoc której mo na manipulowa paskiem zada, jest TaskbarItemInfo. Poni szy fragment kodu pokazuje, jak zdefiniowano opis, który widoczny jest na rysunku 8.1 (UserTimeline). <Window.TaskbarItemInfo> <TaskbarItemInfo Description="{Binding ElementName=Window, Path=TimeLine}"/> </Window.TaskbarItemInfo> Opis jest ustawiany przez wpisanie do w a ciwo ci Decription obiektu TaskbarItemInfo odpowiedniego napisu. W powy szym kodzie napis jest zdefiniowany za pomoc wi zania danych z w a ciwo ci TimeLine przechowuj c typ wyliczeniowy zawieraj cy warto ci User Timeline, Home Timeline, Private Timeline, Mentions i Retweete By Me czyli grupy wiadomo ci. Poniewa warto ci tego typu s wpisywane do zmiennej przy ka dej zmianie warto ci w a ciwo ci TimeLine, utworzone wi zanie danych zapewni samoczynne od wie anie opisów. Grupy wiadomo ci to wiadomo ci serwisu Twitter, które s zgrupowane tematycznie, przyk adowo UserTimeLine zawiera tylko wiadomo ci napisane przez nas, HomeTimeLine to wiadomo ci nasze i osób, które ledzimy. W j zyku angielskim nazywane s one time lines. Niestety tej nazwy nie da si poprawnie przet umaczy na j zyk polski jedyne, co przysz o mi do g owy, to w a nie grupy wiadomo ci. Poniewa t umaczenie wydaje mi si niezbyt trafione, a niestety lepszego nie jestem w stanie wymy li (Google te ;)), proponuj stosowanie angielskiego okre lenia time line.

Rozdzia 8. WPF i Windows 7 251 W a ciwo ci zale ne Aby powy sze wi zania zadzia a y, w a ciwo TimeLine nie mo e by zwyk w a ciwo ci, poniewa technika wi zania danych wymaga, aby ród o (w tym przypadku w a ciwo TimeLine) powiadamia o cel wi zania (w a ciwo Description) o zmianie swojej zawarto ci w przeciwnym razie w a ciwo Description przechowywa aby ci gle t sam, wpisan za pierwszym razem warto w a ciwo ci TimeLine. W a ciwo TimeLine, aby mog a powiadamia o swojej zmianie, musia a zosta zdefiniowana jako w a ciwo zale na, co przedstawia poni szy fragment kodu. DependencyProperty.Register("TimeLine", typeof(timelines), typeof(mainwindow)); public TimeLines TimeLine { get { return (TimeLines)GetValue(TimeLineProperty); } set { SetValue(TimeLineProperty, value); } } Zagadnienie w a ciwo ci zale nych omówione jest dok adnie w rozdziale Podstawy WPF. Zagadnienie wi zania danych jest omówione w rozdziale Wi zanie danych, je li wi c zapis w powy szym kodzie nie jest dla Ciebie zrozumia y, nie przejmuj si wystarczy wiedzie, e dzi ki niemu samoczynnie b d si zmienia y podpowiedzi po prze czeniu time line na inny rysunek 8.2 pokazuje opis po zmianie time line na HomeTimeLine. Rysunek 8.2. Zmiana opisu po zmianie time line Zamiast u ywa wi zania danych, mogliby my zdefiniowa warto w nast puj cy sposób: Description="Aplikacja TwitterClient" co spowodowa oby wy wietlenie napisu Aplikacja TwitterClient zamiast napisu widocznego na rysunku 8.2. Nast pn w kolejno ci informacj prezentowan w pasku zada, a pokazan na rysunku 8.1, jest podgl d. W tym przypadku nie mamy du ego wp ywu na to, jak mo e by w nim prezentowana nasza aplikacja jedyna mo liwo manipulacji to ustawienie odpowiednich marginesów tak, by tylko cz okna by a widoczna. Takiego ustawienia dokonuje si za pomoc w a ciwo ci ThumbnailClipMargin typu Thickness, czyli za

252 Tworzenie nowoczesnych aplikacji graficznych w WPF pomoc czterech liczb typu Double okre lamy odst p z ka dej ze stron prostok ta (kolejno od lewej, od góry, od prawej i od do u) przyk ad definicji poni ej. <TaskbarItemInfo ThumbnailClipMargin="5,5,5,480" /> Dzia anie marginesów i jednocze nie powy szego fragmentu kodu pokazuje rysunek 8.3 wida, e tylko górna cz aplikacji jest pokazywana dolna cz stanowi ca 480 jednostek zosta a obci ta. Rysunek 8.3. W wyniku zastosowania w a ciwo ci ThumbnailClip Margin w podgl dzie prezentowana jest tylko cz aplikacji Kolejn z udost pnionych mo liwo ci dostosowywania wygl du paska zada jest umieszczanie w nim przycisków. Realizuje si to przy wykorzystaniu w a ciwo ci ThumbButtonInfos, przechowuj cej kolekcj obiektów ThumbButtonInfo. Wa ne, e nie s to przyciski dziedzicz ce po klasie IUElement. Posiadaj jednak podstawowe funkcjonalno ci przycisków. Niestety (a mo e i na szcz cie ) zawarto ci takiego przycisku mo e by jedynie obrazek nie mo na wi c po prostu wpisa do niego zawarto ci tekstowej, która zostanie zaprezentowana. Sposób definiowania powy szych przycisków przedstawia poni szy fragment kodu. Jego dzia anie mo emy obserwowa na wszystkich powy szych rysunkach. <TaskbarItemInfo > <TaskbarItemInfo.ThumbButtonInfos> <ThumbButtonInfo Description="User Timeline" ImageSource="Images\UGreen.png" Click="user_Click"/> <ThumbButtonInfo Description="Home Timeline" ImageSource="Images\HGreen.png" Click="home_Click"/> <ThumbButtonInfo Description="Public Timeline" ImageSource="Images\PGreen.png" Click="public_Click"/> <ThumbButtonInfo Description="Mentions" ImageSource="Images\MGreen.png" Click="mentions_Click"/> <ThumbButtonInfo Description="Retweeted By Me" ImageSource="Images\RGreen.png" Click="rbm_Click"/> </TaskbarItemInfo.ThumbButtonInfos> </TaskbarItemInfo> Jak widzimy, opisy, które pojawia y si na rysunkach nad przyciskami, zdefiniowane by y za pomoc w a ciwo ci Description. Dla ka dego z przycisków mo na równie definiowa uchwyt dla zdarzenia klikni cia. Pod przyciskami widoczny jest ju tylko sam pasek zada. Tam mamy do dyspozycji dwie mo liwo ci zmiany jego wygl du zdefiniowanie nak adki dla ikony aplikacji w pasku oraz wskazanie stanu i post pu danego procesu.

Rozdzia 8. WPF i Windows 7 253 Element TaskbarItemInfo oferuje dodatkowe mo liwo ci informowania u ytkownika o stanie aplikacji i wykonania operacji, odpowiednio za pomoc w a ciwo ci Progress Value i ProgressState. ProgressValue jest w a ciwo ci typu Double przyjmuj c warto ci od 0 do 1 oznaczaj ce procent wykonania czynno ci. Na wszystkich dotychczasowych rysunkach w a ciwo ta by a ustawiona na warto 1, co oznacza o 100% wykonania danego procesu. Druga w a ciwo ProgressState mo e przyjmowa nast puj ce warto ci 1 : Error oznacza b d, charakteryzuje si czerwonym wype nieniem dooko a ikony aplikacji; Normal stan normalny zielone wype nienie dooko a ikony aplikacji; Paused pauza pomara czowe wype nienie dooko a ikony aplikacji; Indeterminate nieokre lony stosowany w przypadku monitorowania procesu, o którego zaawansowaniu nie mamy adnych informacji prezentowany jest w postaci zielonego paska, który jest animowany w kierunku od lewej do prawej; None domy lna warto, stan post pu wykonania czynno ci nie jest prezentowany w pasku zada. Za jej pomoc mo emy informowa u ytkownika o tym, w jakim stanie znajduje si w danym momencie aplikacja. Na wszystkich powy szych rysunkach mogli my zobaczy nast puj ce ustawienia powy szych w a ciwo ci: <TaskbarItemInfo ProgressState="Normal" ProgressValue="1" /> Rysunek 8.4 prezentuje natomiast wygl d aplikacji TwitterClient w pasku zada w zale no ci od ró nych warto ci w a ciwo ci ProgressState oraz ProgressValue równej 0.75. Rysunek 8.4. Wygl d paska zada aplikacji TwitterClient dla w a ciwo ci ProgressValue = 0.75 oraz ró nych warto ci w a ciwo ci ProgressState 1 Ibidem, s. 246. Na koniec zosta y nam nak adki. Nak adka równie by a widoczna na ka dym z poprzednich obrazków jest to ma y obrazek prezentowany w pasku zada w prawym dolnym rogu obok ikony aplikacji. Dzia a tylko wtedy, gdy pasek zada pokazuje du e ikony. Nak adki stosowane s do przekazywania dodatkowych informacji u ytkownikowi. Na powy szych przyk adach widoczne by y naprzemiennie literki u i h odpowiednio skróty od UserTimeLine i HomeTimeLine. S u y y wi c w tym przypadku do przekazywania informacji u ytkownikowi o tym, jaki time line aktualnie ogl da

254 Tworzenie nowoczesnych aplikacji graficznych w WPF w pasku zada. Definicja nak adki jest bardzo prosta do w a ciwo ci Overlay klasy TaskbarItemInfo nale y wstawi nazw obrazka, który ma by prezentowany w nak adce, co przedstawia poni szy fragment kodu. <TaskbarItemInfo Overlay="Images\URed.png" /> Dynamiczna zmiana nak adki Rysunki z tego podrozdzia u nie pokazywa y ci gle tej samej nak adki zmienia a si ona wraz ze zmian time line nak adki by y zamieniane w trakcie dzia ania aplikacji. Jednym ze sposobów zmiany obrazka w nak adce jest zdefiniowanie wi zania danych pomi dzy w a ciwo ci Overlay a zmieniaj c si w a ciwo ci TimeLine (podobnie jak to mia o miejsce w przypadku zmiany opisów aplikacji). TimeLine przechowuje jednak jedynie oznaczenia time line, podczas gdy Overlay chce dosta dane obrazka, który ma by umieszczony w nak adce. Konieczne wi c by oby u ycie konwertera (zagadnienie konwerterów jest dok adnie omówione w rozdziale Wi zanie danych ), który zamieni by warto TimeLine na okre lon reprezentacj obrazka. Inn mo liwo ci jest zdefiniowanie zasobu, na przyk ad w oknie Window, jak w poni szym kodzie (zagadnienie zasobów zostanie omówione w rozdziale Zasoby ). <Window.Resources> <DrawingImage x:key="hredoverlay"> <DrawingImage.Drawing> <ImageDrawing ImageSource="Images\HRed.png" Rect="0,0,16,16"/> </DrawingImage.Drawing> </DrawingImage> <DrawingImage x:key="uredoverlay"> <DrawingImage.Drawing> <ImageDrawing ImageSource="Images\URed.png" Rect="0,0,16,16"/> </DrawingImage.Drawing> </DrawingImage> </Window.Resources> Nast pnie w momencie zmiany time line, czyli na przyk ad po naci ni ciu przycisku z paska zada, nale a oby odnale konkretny zasób i wstawi jego warto do w a ciwo ci Overlay: this.taskbariteminfo.overlay = (DrawingImage)FindResource("HRedOverlay"); 8.2. Listy szybkiego dost pu Lista szybkiego dost pu jest tym, co pokazuje si po naci ni ciu prawym przyciskiem myszy na kontrolce aplikacji w pasku zada lub przeci gni ciu kursora myszy do góry z jednocze nie przyci ni tym lewym przyciskiem myszy. Przyk ad listy szybkiego dost pu programu Internet Explorer pokazuje rysunek 8.5. Domy lna lista szybkiego dost pu jest do czana do ka dej aplikacji w systemie Windows 7. Aplikacja mo e mie list szybkiego dost pu zarówno wtedy, kiedy dzia a, jak i wtedy, gdy jest wy czona. Przyk ad domy lnej listy szybkiego dost pu dla aplikacji TwitterClient przedstawia rysunek 8.6.

Rozdzia 8. WPF i Windows 7 255 Rysunek 8.5. Lista szybkiego dost pu programu Internet Explorer w Windows 7 Rysunek 8.6. Lista szybkiego dost pu dla programu TwitterClient, gdy aplikacja jest uruchomiona (po lewej) oraz gdy aplikacja jest zamkni ta (po prawej) Oczywi cie aby lista po prawej stronie rysunku 8.6 mog a by pokazana, konieczne by o przypi cie aplikacji do paska zada. List szybkiego dost pu mo na zmienia za pomoc w a ciwo ci do czonej JumpList. JumpList ustawionej na warto JumpList. Lista jest do czana do pow oki jeden raz, zaraz po uruchomieniu aplikacji, wi c umieszczamy jej definicj w klasie App. Alternatywn mo liwo ci ustawienia listy szybkiego dost pu jest wywo anie metody Jump List.SetJumpList w kodzie proceduralnym. Klasa JumpList posiada w a ciwo JumpItems, do której mo na wpisa zawarto listy. Mog ni by dwie klasy dziedzicz ce po JumpItem JumpTask i JumpPath 2. W skrócie mo na powiedzie, e JumpTask to po czenie kieruj ce do programu, natomiast JumpPath to po czenie prowadz ce do pliku. W kolejnych podrozdzia ach omówi ka d z tych klas. 8.2.1. JumpTask Element JumpTask reprezentuje zadania do wykonania. Na rysunku 8.5 zadaniami s Rozpocznij przegl danie InPrivate i Otwórz now kart. W praktyce s u one do uruchomienia aplikacji z parametrami linii polece. Przyk ad definicji elementu JumpList w aplikacji TwitterClient przedstawia poni szy fragment kodu: 2 A. Nathan, WPF 4 Unleashed, op. cit., s. 234, http://msdn.microsoft.com/en-us/library/ system.windows.shell.jumplist.jumpitems.aspx, 2012-01-22.

256 Tworzenie nowoczesnych aplikacji graficznych w WPF <Application x:class="twitterclient.app" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" StartupUri="MainWindow.xaml"> <JumpList.JumpList> <JumpList> <JumpTask Title="User time line" Arguments="UserTimeLine" Description="Uruchamia TwitterClient w trybie User time line"/> <JumpTask Title="Home time line" Arguments="HomeTimeLine" Description="Uruchamia TwitterClient w trybie Home time line"/> </JumpList> </JumpList.JumpList> </Application> W powy szym kodzie utworzono dwa elementy JumpTask. Pierwszy z nich uruchamia kolejn instancj aplikacji TwitterClient z argumentem UserTimeLine. Drugi uruchamia t aplikacj z parametrem HomeTimeLine. Co to za argumenty? S to po prostu argumenty linii polece, które mo emy odczyta na przyk ad tak: MessageBox.Show("Uruchomiono aplikacj z nast puj cymi argumentami: "+ Environment.CommandLine); i od wyniku uzale ni dzia anie aplikacji (wi cej informacji o metodach odczytywania parametrów przekazanych w linii polece znajduje si w rozdziale Struktura i rodzaje aplikacji WPF ). Rysunek 8.7 pokazuje zarówno wygl d listy zdefiniowanej w powy szym fragmencie kodu, jak i to, co przekazywane jest do aplikacji po wybraniu pierwszego zadania. Do odczytania przekazanych parametrów zosta a wykorzystana klasa Environment i jej w a ciwo CommandLine (jej u ycie wida w pokazanym powy ej fragmencie kodu). CommandLine przechowuje dwie warto ci pierwsza warto to cie ka do aplikacji, natomiast druga to argument przekazany do aplikacji. Argumenty te zosta y wy wietlone w konstruktorze klasy MainWidow za pomoc okienka MessageBox. Rysunek 8.7. JumpList ze zdefiniowanym elementem JumpTask i argumenty przekazane do aplikacji wy wietlone za pomoc MessageBox Co do samego wygl du listy, to wida, e podpowied wy wietlana do ka dego z zada definiowana jest za pomoc w a ciwo ci Desctiption klasy JumpTask. Element Title okre la natomiast tre, która poka e si jako odno nik do danego zadania.

Rozdzia 8. WPF i Windows 7 257 Przeanalizujmy krótko, jak zachowuje si TwitterClient po wybraniu zadania z listy. W przypadku gdy aplikacja jest zamkni ta, przekazywane s odpowiednie argumenty, po czym TwitterClient jest uruchamiany. Spójrzmy teraz na dzia anie listy szybkiego dost pu dla programu Internet Explorer. Po wybraniu zadania Otwórz now kart gdy aplikacja jest wy czona, uruchamiany jest Internet Explorer z now kart czyli analogicznie do naszego przyk adu. A teraz spójrzmy, co si stanie, gdy dla ju uruchomionej aplikacji wybierzemy to samo zadanie nowa karta otwierana jest w tej samej instancji aplikacji. Co natomiast dzieje si w naszym przyk adzie? Za ka dym razem otwierana jest nowa aplikacja. Ten problem mo na rozwi za przy u yciu klasy Microsoft.VisualBasic.ApplicationServices.Windows FormsApplicationBase umo liwia ona zaimplementowanie komunikacji z parametrami przekazywanymi przez lini polece w czasie dzia ania jednej instancji aplikacji. Istniej dodatkowe mo liwo ci definiowania listy szybkiego dost pu. Przyk ad definicji zadania, które uruchamia aplikacj mspaint.exe, oraz ikony dla tego zdania przedstawia poni szy fragment kodu definiuj cy kolejny element JumpTask: <JumpTask/> <JumpTask Title="Paint" Description="Otwiera program Paint" ApplicationPath="%WINDIR%\system32\mspaint.exe" IconResourcePath="%WINDIR%\system32\mspaint.exe"/> <JumpTask/> </JumpList> Na rysunku 8.8 przedstawiono efekt dzia ania tej definicji wida, e w li cie pojawi a si dodatkowa pozycja wraz z ikon (odpowiednio w a ciwo ci ApplicatonPath oraz IconResourcePath). Biblioteki %WINDIR%\System32\shell32.dll i %WINDIR%\System32\imageres.dll zawieraj wiele ikon przydatnych do zastosowania w listach szybkiego dost pu. Rysunek 8.8. Program mspaint.exe uruchamiany za pomoc jednego z zada Po wybraniu tego zadania zostanie uruchomiony program mspaint.exe. Wida, e zarówno ikony, jak i program lokalizowane s za pomoc zmiennych systemowych. Dodatkowo przed i po zadaniu Paint umieszczone zosta y definicje elementów JumpTask

258 Tworzenie nowoczesnych aplikacji graficznych w WPF bez adnych atrybutów s u one do zdefiniowania separatorów równie widocznych na rysunku 8.8. Windows 7 umo liwia równie zgrupowanie elementów znajduj cych si na li cie szybkiego dost pu. S u y do tego w a ciwo CustomCategory typu string klasy JumpItem. Przyk ad definicji przedstawia poni szy fragment kodu: <JumpTask CustomCategory="Programy u ytkownika" Title="User time line" Arguments="UserTimeLine" Description="Uruchamia TwitterClient w trybie User time line"/> <JumpTask CustomCategory="Programy u ytkownika" Title="Home time line" Arguments="HomeTimeLine" Description="Uruchamia TwitterClient w trybie Home time line"/> <JumpTask/> <JumpTask CustomCategory="Programy Windows" Title="Paint" Description="Otwiera program Paint" ApplicationPath="%WINDIR%\system32\mspaint.exe" IconResourcePath="%WINDIR%\system32\mspaint.exe"/> <JumpTask/> Grupy elementów s wi c identyfikowane za pomoc nazwy grupy, do której chc przynale e. Co by si sta o, gdyby dla jednego z elementów w a ciwo CustomCategory zosta a niezdefiniowana? W takim przypadku zosta aby utworzona dla tego elementu domy lna grupa o nazwie Zadania, któr mogli my zobaczy na przyk ad na rysunku 8.7. Wygl d listy po zdefiniowaniu grup tematycznych przedstawia rysunek 8.9. Rysunek 8.9. Poszczególne zadania przydzielone do grup 8.2.2. JumpPath Za po rednictwem JumpPath okre la si elementy wskazuj ce na cie ki do plików, które mog by uruchomione przez dan aplikacj. Przyk ad definicji i dzia ania tego elementu przedstawiony jest w poni szym fragmencie kodu. <JumpList.JumpList> <JumpList> <JumpPath Path="C:\plik_tekstowy.txt" CustomCategory="Pliki"/> </JumpList> </JumpList.JumpList>

Rozdzia 8. WPF i Windows 7 259 Jak wida, definicja JumpPath wygl da analogicznie do JumpTask. cie ka do pliku tekstowego zosta a zdefiniowana za pomoc w a ciwo ci Path oraz umieszczona zosta a w grupie Pliki w a ciwo CustomCategory jest dziedziczona po klasie JumpItem. Na rysunku 8.10 przedstawiono wygl d elementu JumpPath w li cie szybkiego dost pu. Rysunek 8.10. Element JumpPath w li cie szybkiego dost pu Aby zdefiniowany plik plik_tekstowy.txt móg si pokaza na li cie, konieczne jest, by znajdowa si we wskazywanej przez nas lokalizacji. Poniewa nasza aplikacja Twitter Client nie posiada funkcjonalno ci otwierania plików tekstowych, po wybraniu pliku plik_tekstowy.txt z listy zostanie uruchomiona druga instancja aplikacji TwitterClient. W pokazanym fragmencie kodu definiuj cego element JumpPath wida cie k bezwzgl dn do pliku. Jest to jedyna mo liwo wskazania lokalizacji plików w przypadku elementu JumpPath 3. Dlatego te aplikacje, które wykorzystuj ten element, najcz ciej definiuj go w kodzie proceduralnym, co pozwala wykorzysta bie ce ustawienia, np. zmienne rodowiskowe. Na koniec tego podrozdzia u spójrzmy jeszcze raz na list JumpList programu Internet Explorer. Zawiera ona grup o nazwie Cz ste. Pokazywana jest ona cz sto zamiennie z inn grup o nazwie Najnowsze czyli po prostu list cz sto i ostatnio otwieranych plików i zada. Na li cie tej znajduj si pliki i zadania uruchamiane cz sto lub ostatnio za pomoc okna dialogowego do otwierania plików lub konkretnej aplikacji, je eli dany rodzaj pliku zosta z ni skojarzony. Aby taka grupa pokaza a si na naszej li cie, wystarczy ustawi dwie w a ciwo ci klasy JumpList odpowiedzialne za pokazywanie grupy najcz ciej otwieranych plików i ostatnio otwieranych plików odpowiednio ShowFrequentCategory i ShowRecent Category co przedstawia kod zamieszczony poni ej. <JumpList ShowFrequentCategory="True" ShowRecentCategory="True"> </JumpList> 3 Ibidem, s. 241.

260 Tworzenie nowoczesnych aplikacji graficznych w WPF Efekt widoczny jest na li cie JumpList programu TwitterClient rysunek 8.11. Rysunek 8.11. Element JumpList ze zdefiniowanymi w a ciwo ciami ShowFrequentCategory i ShowRecentCategory Na rysunku wida, e zarówno w kategorii Cz ste, jak i Najnowsze prezentowane s te same pliki dlatego te zazwyczaj lista ostatnio otwieranych plików jest stosowana zamiennie z list najcz ciej otwieranych. Plik plik_tekstowy.txt znalaz si na li cie najcz stszych i ostatnich, poniewa pliki.txt zosta y skojarzone w moim systemie z aplikacj TwitterClient, po czym otwarte przy jej u yciu. Generalnie tym, które pliki znajd si na li cie, zajmuje si pow oka Windows, ale mo liwe jest te wymuszenie dodania elementów do omawianych grup poprzez wywo anie funkcji JumpList.AddToRecent Category, której argumentami s albo zadania JumpTask, albo pliki JumpPath. 8.3. Aero Glass Aero Glass jest terminem okre laj cym okno, którego ramki s przezroczyste. Cz b d ca obramowaniem mo e by rozci gni ta na cz u ytkow aplikacji, co pozwala na uzyskanie efektu przezroczystej pow oki. Przyk ady aplikacji wykorzystuj cych Aero Glass to Internet Explorer i Windows Media Player. Istniej dwa ograniczenia co do mo liwo ci definiowania przezroczystego obszaru 4 : Obszar ten musi by prostok tem nie mo e to by inny kszta t. Obszar przezroczysty jest rozszerzeniem ramki okna, wi c nie mo e by zdefiniowany wewn trz okna jedyne opcje to albo przezroczysta ramka dooko a okna, albo ca e przezroczyste okno. 4 M. MacDonald, Pro WPF Windows Presentation Foundation in.net 3.0, op. cit., s. 242.