12 grudnia 2015 --------------- 1) W kodzie XAML (warstwa widoku) aplikacji KoloryWPF zmienić pojemnik StackPanel na Grid. Zwiększanie rozmiaru okna powinno powodować zmianę rozmiaru prostokąta. 2) Uwzględnić odczytywanie i zapisywanie położenia oraz rozmiaru okna w ustawieniach. 3) Zastąpić zapis ustawień z Settings na plik XML (klasa XDocument poznana w WinForms). 4) Bardzo ważne zadanie: Przygotować aplikację, która w widoku ma dwie kontrolki: TextBox i TextBlock. W klasie modelu powinna przechowywać tylko jedno pole lub własność Tekst. Model widoku powinien udostępniać tę własność za pomocą własności, którą również można nazwać Tekst. Z tą własnością związane są własności Text obu kontrolek. Model powinien implementować interfejs INotifyPropertyChanged. Efekt powinien być taki, że zmiana tekstu w polu edycyjnym powinna powodować natychmiastową zmianę tekstu w etykiecie (TextBlock). 9 grudnia 2016 -------------- 1) W aplikacji z p. 4) w poprzedniej grupie zadań (to z TextBox i TextBlock) należy dodać dodatkowe wiązanie koloru czcionki w obu kontrolkach oparte na konwerterach: a) kolor w TextBlock powinien zależeć od długości tekstu, b) kolor w TextBox powinien być zielony jeżeli zawiera wyłącznie litery A-Z, a-z i litery polskie, zółty jeżeli poza tymi literami są jeszcze cyfry i czerwone gdy pojawiają się inne znaki. 2) Do tej samej aplikacji dodać trzy przyciski związane z poleceniami: a) pierwszy przycisk niech czyści zawartość TextBox, b) drugi niech usuwa z tekstu wszystkie znaki poza literami i cyframi, trzeci - niech zamienia je na spacje. Drugi i trzeci przycisk powinny korzystać z tego samego polecenia zdefiniowanego w modelu widoku - różnica działania niech wskazywana będzie przez parametr polecenia. 3) Ściśle trzymając się wzorca MVVM przygotować aplikację AsystentZakupów (por. projekt Windows Forms, który przygotowaliśmy na zajęciach 21-11-2015. [To zadanie na pewno będziemy robić na zajęciach] 20 lutego 2016 -------------- 1) W projekcie PasekPostępu dodać dwa polecenia ustawiające suwak na pozycji minimalnej lub maksymalnej (w zależnościwartości parametru polecenia typu bool). Wykorzystać ogólną klasę MvvmCommand z zajęć. 2) Zdefiniować zachowanie dla suwaka (klasę dziedziczącą z Behavior), która będzie zmieniać pozycję suwaka w zależności od naciśnięcia klawiszy 1-9 (dla 1 powinno to być 0%, dla 9 - 100%). 3) Zdefiniować zachowanie dla okna, które ustawia wszystkie suwaki w oknie na wartość wskazaną we własności zależności. 4) Zdefiniować zachowanie dla suwaka, które zmienia kolor suwaka w zależności od jego pozycji (wartości). 4) Zdefiniować dwie własności doczepiane, która wskazują suwaki, które kontrolują szerokość i wysokość okna. okna. 27 lutego 2016 -------------- Ściśle trzymając się zasad MVVM przygotować aplikację rozwiązującą równania kwadratowe. Przewidzieć sytuację, w której nie ma pierwiastków. Użyć polecenia do zainicjowania obliczeń i wiązań do prezentacji obu pierwiastków. 5 marca 2016 ------------ 1) W zadaniu 4) z 12 grudnia 2015 do TextBox dodać zachowanie, które po każdej zmianie własności Text (zob. zdarzenie TextChanged) powoduje efekt dźwiękowy uzyskany np. za pomocą SystemSounds.Beep.Play();. 2) Stworzyć "pustą" aplikację WPF. Do okna dodać przycisk. Korzystając z transformacji RenderTransform pochylić przycisk o 10 stopni w pionie. 3) Po uruchomieniu aplikacji z poprzedniego punktu animować pochylenie od -30 stopni do + 30 stopni i z powrotem.