E-book details

Tworzenie nowoczesnych aplikacji graficznych w WPF

Tworzenie nowoczesnych aplikacji graficznych w WPF

Jarosław Cisek

Ebook

Dobry interfejs graficzny aplikacji Windows? Tylko z WPF!

  • Poznaj metody tworzenia nowoczesnych i spójnych GUI
  • Naucz się korzystać z możliwości WPF i języka XAML
  • Dowiedz się, jak łączyć atrakcyjne interfejsy z logiką programów

Windows Presentation Foundation to nowoczesny system graficzny, umożliwiający tworzenie i wyświetlanie atrakcyjnych wizualnie aplikacji okienkowych dla środowiska Windows. Technologia ta powstała w odpowiedzi na stale rosnącą potrzebę dostarczania wysokiej jakości grafiki, której prezentacja opiera się na wykorzystaniu akceleracji sprzętowej i nie wiąże się z dużym obciążeniem zasobów systemowych. Oddzielenie warstwy interfejsu użytkownika od logiki aplikacji umożliwia definiowanie interfejsów przy użyciu deklaratywnego języka XAML. Upraszcza tym samym proces tworzenia przejrzystych i elastycznych GUI.

Każdy szanujący się autor programów działających pod kontrolą systemów Windows powinien dobrze opanować WPF, zwłaszcza jeśli ma na celu produkowanie naprawdę interesujących aplikacji okienkowych przy możliwie niewielkim nakładzie sił i środków. Pomoże mu w tym odpowiednie źródło wiedzy, takie jak książka "Tworzenie nowoczesnych aplikacji graficznych w WPF ". W ciekawy i przestępny sposób zostały w niej zaprezentowane najważniejsze informacje na temat korzystania z Windows Presentation Foundation, tworzenia nowoczesnych interfejsów użytkownika, zastosowania języka XAML, a także wyświetlania grafiki i animacji czy obsługi zdarzeń związanych z używaniem różnego rodzaju urządzeń wskazujących.

  • Zasady tworzenia graficznych interfejsów użytkownika
  • Charakterystyka platformy WPF i języka XAML
  • Struktura i typy aplikacji WPF oraz metody ich tworzenia
  • Używanie paneli i zarządzanie układem ich składników
  • Korzystanie z różnego rodzaju kontrolek
  • Definiowanie interfejsów aplikacji systemu Windows 7
  • Obsługa zdarzeń pochodzących z urządzeń wejściowych
  • Używanie zasobów i wiązanie danych
  • Stosowanie stylów, szablonów, skórek i motywów
  • Prezentacja grafiki 2D, 3D i animacji

A wszystko to w oparciu o szereg praktycznych i ciekawych przykładów!

Sięgnij po jedną z nielicznych książek poświęconych technologii WPF i twórz nowoczesne aplikacje graficzne!

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)

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)

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)
  • 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)
  • 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)
  • 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)

  • Title: Tworzenie nowoczesnych aplikacji graficznych w WPF
  • Author: Jarosław Cisek
  • ISBN: 978-83-246-6692-8, 9788324666928
  • Date of issue: 2012-12-17
  • Format: Ebook
  • Item ID: twnoap
  • Publisher: Helion