2. Ściągniecie i instalacja IDE - 7 minut
- Czym jest IDE?
- ściągnięcie Visual C# Express Edition 2013 for Desktop oraz instalacja
- jak ustawić polską wersję językową
3. Czym jest WPF / XAML - różnice - pierwsza aplikacja - 34 minut 56 sekund
- analiza środowiska programistycznego Visual C# Express Edition 2013 for Desktop
- czym jest WPF, XAML
- jakie są różnice
- czym się różni XAML od XML
- z czego się składa WPF, a z czego XAML
- przypominamy podstawy dot. XML oraz przypominamy czym jest przestrzeń nazw
- dowiadujemy się czym są 'częściowe klasy' i dlaczego są generowane
- czym są atrybuty w C# i do czego służą
- dlaczego rozwiązanie z WPF / XAML jest takie 'piękne'
- informujemy o innym IDE służącym tylko do tworzenia wyglądu aplikacji
- analizujemy niektóre możliwości Visual C# Express Edition 2013 for Desktop
- czym jest assembly
- czym jest oraz czym się różni .exe od .ddl
- jak wersja .NET wpływa na możliwości odpalenia naszych aplikacji na różnych wersjach Windowsa
- jak analizować biblioteki dołączone do projektu z pomocą zakładki references
- czym jest refaktoryzacja, jak zmienić np. nazwę naszego pliku .xaml albo funkcji wewnątrz programu aby nie rozleciał się projekt?
- jaka jest różnica między x:Name a Name
- czym jest BAML
4. Ogólne ważne pojęcia - 32 minuty 51 sekund
Poznajemy:
- kontrolkę button (przycisk)
- pojęcia drzewo / gałezie / węzły / dzieci / rodzice / drzewo logiczne i wizualne
- program Snoop (do przeglądania drzewa wizualnego aplikacji i nie tylko)
Dowiadujemy się:
- jak dodać kontrolkę bezpośrednio z kodu bez użycia xaml
- czym są kontrolki i czym się charakteryzują
- jak stworzyć przycisk, z tekstem i dodać do niego obrazek (dodajemy obraz do projektu)
- jak dodać numerowanie lini w Visualu
- czym są zdarzenia, jak działają routed events (zdarzenia kierowane)
- jak wyświetlić komunikat z przyciskiem OK
- jak dziedziczone są właściwości w drzewie wizualnym
- jak wyłączyć jakąś kontrolkę z użytku (nie ma możliwości jej kliknięcia)
- jakie są priorytety dziedzieczenia
5. Layouty i Attached Property - 25 minut 46 sekund
- czym są layouty
- czym jest grid i jak działa
- jak tworzyć kolumny, wiersze, jak sprawić by się automatycznie dostosowały do zawartości, dzieliły się propocjonalnie (*) lub też miały z góry nałożoną wysokość / szerokość (auto)
- jak ustawiać elementy w odpowiednich kolumnach / wierszach
- czym jest attached property
- jak narysować prostokąt i wypełnić go kolorem
- jak stworzyć blok tekstu i nadać mu tło
- czym są marginesy i paddingi oraz czym się różnią
- jak wycentrować obiekty, wyrównań do lewej / prawej etc.
- czym jest stretch i jak działa
- czym jest span jak sprawić żeby jakiś obiekt znajdował się np. w dwóch kolumnach / wierszach jednocześnie
6. GridSplitter - 10 minut 11 sekund
- dowiadujemy się czym jest gridsplitter i jak z niego korzystać
- poznajemy właściwości MinHeight, MinWidth, MaxHeight, MaxWidth, które odpowiedzialne są za minimalną / maksymalną szerokość / wysokość wyświetlanych elementów.
- jak dzielić elementy w proporcji innej niż domyślnej
- jak stworzyć gridsplitter poziomo oraz pionowo
7. UniformGrid - 3 minuty 48 sekund
Poznajemy właności panelu uniformgrid oraz mówimy kiedy warto z niego korzystać.
8. StackPanel i WrapPanel - 6 minut 59 sekund
Omawiamy w jaki sposób zachowują się kontrolki dodane do StackPanel i WrapPanel oraz kiedy warto stosować wymienione layouty.
9. DockPanel - 5 minut 31 sekund
Omawiamy właściwości i sposób ustawienia elementów w DockPanel.
10. Canvas - 4 minuty 21 sekund
Omawiamy właściwości i sposób ustawień elementów w Canvas. Wyjaśniamy różnicę między pozycjonowaniem elementów relatywnym, a absolutnym.
11. ScrollViewer i zawijanie tekstu - 2 minuty 10 sekund
Jak stworzyć scroll, jak działa "zawijanie tekstu" (wrap).
12. Expander - rozwijanie i ukrywanie treści - 2 minuty 33 sekundy
Jak stworzyć tekst, który pojawia się / chowa po kliknięciu na odpowiedni przycisk.
13. RadioButton, GroupBox, Label - 7 minut 17 sekund
Czym jest RadioButton, GroupBox, Label. Tworzymy pytania ankietowe z pomocą radiobuttonów, groupbox i label, pokazujemy jak wyspecjalizować zawartość jakiegoś atrybutu, gdy jest niestandardowa. Dla przykładu jak pogrubić header groupboxa.
14. Binding, Markup Extension - 12 minut 39 sekund
Dowiadujemy się czym jest:
- binding
- markup extension
Poznajemy kontrolkę Slider (suwak) i jej właściwości. Omawiamy podstawy bindingu (wiązania ze sobą danych). Omawiamy wszystkie (mode) kierunki powiązań, oneway, twoway etc. i ich różnice.
15. Eventy i Delegaty - 28 minut 54 sekundy
Do czego służą oraz czym są eventy oraz delegaty. Co dokładnie oznacza słówko "event" oraz "delegate". Tworzymy symulację w której gdy dojdzie jakiegoś zdarzenia to informuje o tym obserwujące obiekty.
16. DataContext oraz interfejs INotifyPropertyChanged - 24 minuty 55 sekund
Omawiamy na praktycznym przykładzie, czym jest DataContext oraz jak korzystać z interfejsu INotifyPropertyChanged. Poznajemy kolejny layout: InkCanvas. Tworzymy aplikację, która przełącza się pomiędzy dwoma trybami rysowania / oraz zaznaczania i przenoszenia narysowanych elementów na płótnie.
17. Zasoby Aplikacji - StaticResources, DynamicResources, Source - 11 minut 32 sekundy
Czym jest StaticResources, DynamicResources oraz Source, czym się różnią oraz jak z nich korzystać.
Jak stworzyć własną przestrzeń nazw w XAML'u i skorzystać z klasy stworzonej w 'code-behind' z pomocą tagó XAML'a. Jak stworzyć instancję własnej klasy w XAML'u.
18. GroupBox i RadioButton - 9 minut 5 sekund
Trenujemy to co poznaliśmy w ostatnich lekcjach tworząc mini ankietę. Dowiadujemy się czym jest groupbox i radiobutton. Poznajemy ciekawy skrót do formatowania kodu oraz trenujemy binding.
19. Popup - 6 minut 11 sekund
Jak tworzyć animowane popupy (pojawiające się treści dobrane przez nas) i pozycjonować je w oknie.
20. ToggleButton - 4 minuty 22 sekundy
Czym jest togglebutton i jak z niego korzystać. Tworzymy program, który po kliknięciu na przycisk pojawia / ukyrwa treść (w naszym wypadku ankietę).
21. Style - 12 minut 49 sekund
Czym sa style? jak tworzyć style? jak sobie radzić gdy jakaś kontrolka nie pasuje nam całkowicie, a nie można zmienić jej wyglądu poprzez istniejące właściwości bo nie zostały przewidziane. Tworzymy własny styl jednej z kontrolek (zmieniamy totalnie jej szablon).
22. Trigger - wyzwalacz akcji - 8 minust 39 sekund
Czym są triggery i jak z nich korzystać. W jaki sposób w xamlu zareagować na zmianę jakiejś właściwości. Tworzymy szablon stylu, który po nadaniu tworzy nam od razu togglebutton, który zmienia swoją zawartośc pomiędzy wartościami "on/off". Ulepszamy naszą ankietę, aby zmieniała stany wyświetlanego tekstu z "pokaż ankietę" na "ukryj ankietę".
23. Converter - 11 minut 45 sekund
Czym są konwertery i jak z nich korzystać. Poznajemy nowe property (Visibility) ukrywające / ukazujące wybrane przez nas treści. Tworzymy konwerter zmieniający w bindingu wartości z bool (true/false) na Visibility(Visible, Collapsed).
24. Multi Warunkowy Trigger - 3 minuty 27 sekund
Jak stworzyć samowyzwalacz, który zostanie wywołany gdy zostanie spełnionych KILKA warunków jednocześnie.
25. Event Trigger i Animacje - 18 minut 32 sekundy
Jak tworzyć event triggery oraz animacje. Poznajemy kolejny tag Border (obramowanie) i go animujemy. Tworzymy kilka animacji np. powiększającego się tekstu / obramowania / powiększającego się prostokąta. Dowiadujemy się jak zatrzymać, kontynuować, przenieść się do odpowiedniego momentu, pominąć, przyspieszyć oraz zakończyć animację. Jak sprawić, aby wartości po animacji powróciły do domyślnej wartości oraz jak sprawić, aby wykonywały się w nieskończoność / określoną ilość razów.
26. Easing Function - 5 minut 58 sekund
Czym są easing function i jak z nich korzystać? Dowiadujemy się jak zmienić domyślny sposób 'uwalniania' animacji na ciekawszy.
27. Data Trigger - 12 minut 33 sekundy
Czym sa DataTriggery i jak z nich korzystać. Wiążemy własną klasę MyImages z kontrolką w xamlu i wyzwalamy akcję (datatrigger) w zalezności od wartości instancji klasy.
28. itemsource / itemscontrol / datatemplate - 20 minut 26 sekund
Czym jest itemscontrol, itemssource i datatemplate oraz jak z nich korzystać. Tworzymy praktyczną aplikacje, która wyświetla n zdjęc na raz wczytanych z kodu. Gdy zdjęcie się nie znajdzie to wyśietlana jest stosowna informacja, a zdjęcie jest zmieniane na symbolizujące, że treść nie została znaleziona. Gdy dodamy jakieś zdjęcie (jedną linią) w kodzie to nie trzeba już zmieniać nic w xamlu. Dowiadujemy się jak zmienić panel wyświetlania items control. Jak stworzyć kontrolkę wyświetlającą dane w nasz własny sposób. Jak zmienić Panel wyświetlania (itemspaneltemplate)?
29. UserControl - 6 minut 27 sekund
Kontynuujemy poprzednią lekcję, dowiadujemy się czym jest UserControl i jak z niego korzystać? Jak tworzyć własne kontrolki w osobnych plikach, które można później ponownie używać? Jak sprawić, aby miały własne właściwości, do których można odwoływać się z xamla?
30. Custom Dependency Property - 28 minut 5 sekund
Rozszerzamy poprzednią lekcję o możliwość bindowania do właściwości naszej własnej kontrolki. Omawiamy dokładnie czym jest Dependency Property oraz tworzymy własne Dependency Property. Dowiadujemy się czym jest Dependency Object. Jak korzystać ze snippetów w Visual Studio 2013.
31. Templates, ControlTemplate i ContentPresenter oraz TemplateBinding - 15 minut 8 sekund
Czym są szablony i jak je tworzyć. Czym jest ControlTemplate i ContentPresenter. Jak stworzyć button o własnym wyglądzie np. elipsy. Jaka jest różnica między ControlTemplate, a DataTemplate?
32. MultiDataTriger i RelativeSource - 16 minut 30 sekund
Kontynuujemy poprzednią lekcję. Dowiadujemy się czym są MultiDataTtrigger, RelativeSource, FindAncestor, AncestorLevel, AncestorType, TemplatedParent oraz jak z nich korzystać. Jak bindować do właściwości 'względnie' tzn. względem siebie wybierając 'rodziców' kontrolki, czy też siebie. Jak z pomocą wyzwalacza odwołać się jednocześnie do zwykłej wartości property kontrolki oraz wartości znajdującej się w klasie zrobionej przez nas w kodzie. Tworzymy buttony, które gdy sie na nie najedzie myszką zmieniają kolor na niebieski (jeśli w kodzie z klasy Person przypisano do niego obiekt który właściwość płeć ma ustawioną na mężczyznę), lub na różowy (jeśli w kodzie przypisana do niego jest kobieta). Tworzymy przykład w którym korzystamy w tym samym momencie z ControlTemplate i DataTemplate.
33. ListBox i ObservableCollection - 17 minut 8 sekund
Dowiadujemy się czym jest ListBox i jak go modyfikować z danymi z zewnątrz. Jak dodawać / usuwać elementy z ListBox. Jak podmienić wygląd poszczególnych elementów w ListBox, gdy zostanie spełniony jakiś warunek. Jak sprawić, aby można było wybrać więcej niż jeden element. Jak zareagować na wybranie jakiegoś elementu? Poznajemy ObservableCollection.
34. ComboBox - 2 minuty 33 sekundy
Czym jest ComboBox? Jak stworzyć listę rozwijalną, którą można przeszukiwać? Kontynuujemy lekcję dotyczącą listboxa.
35. Listview - 17 minut 13 sekund
Dowiadujemy się czym jest ListView oraz jak korzystać z GridView. Wyświetlamy dane z ObservableCollection z klasy w kodzie (wiążemy dane z pomocą DisplayMemberBinding) w postaci tabelki z nagłówkami: "imię, wiek, email". Pokazujemy jak edytować wygląd wierszy (ItemContainerStyle), komórek tabeli (CellTemplate) oraz nagłówka (ColumnHeaderTemplate oraz ColumnHeaderContainerStyle).
36. ListView - sortowanie danych - 13 minut 50 sekund
Dowiadujemy się jak sortować dane wyświetlane w tabelce malejąco oraz rosnąco.
37. DataGrid - 25 minut 34 sekundy
Czym jest DataGrid i jak z niego korzystać? Pokazujemy jak korzystać z kontrolki, która automatycznie wczytuje dane i tworzy kolumny z możliwością edycji / dodawania nowych / usuwania oraz sortowania na podstawie podanych jej danych. Uczymy się modyfikować powstałą tabelę (nadając jej własny wygląd / szablon). Dowiadujemy się jak dodać własne kolumny. Jak sprawić, aby tło było naprzemiennie innego koloru. Jak sprawić, aby każdy wiersz miał dodatkowy opis. Jak zmieniać funkcjonalności DataGrid jak np. zablokować sortowanie / roszerzenie niektórych elementów i wiele wiele innych.
38. TemplateSelector - 10 minut 13 sekund
Dowiadujemy się czym jest oraz jak korzystać z TemplateSelector. Jak stworzyć program, który wybiera szablon na dane na podstawie danych, które mamy w kontrolce.
39. Menu i wbudowane komendy - 20 minut 4 sekundy
Jak stworzyć menu główne aplikacji. Jak sprawić, aby można było odwoływać się do pozycji w menu z pomocą alt+wybrana przez nas literka (accelerator key). Jak dodać ikonę do pozycji w menu. Poznajemy kontrolkę RichTextBox i mówimy czym się różni od zwykłego TextBox. Jak korzystać z Command (komend), czym są i dlaczego są takie fajne. Omawiamy komendy służące do kopiowania, wklejania i wycinania
40. Custom Commands - 19 minut 32 sekundy
Jak tworzyć własne komendy? Tworzymy na swój sposób komendę zamykającą nasza aplikację. owiadujemy się do czego służy CanExecute oraz Executed. Jak zmienić domyślne skróty klawiaturowe na inne? Jak zrobić wywołanie komendy np. skrótem CTRL + SHIFT + Q.
41. Jak otworzyć więcej niż 1 okno? - 3 minuty
Rozszerzamy poprzednią lekcję i z pomocą komendy otwieramy więcej niż 1 okno. Implementujemy komendę ApplicationCommands.Help.