10 grudnia 2016 --------------- 1. Korzystając ze skryptu (link do PDFa w liście) proszę odtworzyć aplikację AsystentZakupów. 2. Do modelu dodać kolekcję zsumowanych kwot (lista List). Wyższym warstwom należy jednak udostępniać jedynie liczbę zsumowanych kwot, która powinna być widoczna w widoku. 3. Zmienić widok (kod XAML) aplikacji tak, żeby zamiast kontrolki TextBox używany był Slider, a zamiast TextBlock - pasek postępu ProgressBar. 4. Stworzyć aplikację WPF zgodną ze wzorcem MVVM, w której w widoku umieszczone są kontrolki TextBox i TextBlock. Tekst wpisany do pierwszej kontrolki powinien być widoczny w drugiej. Model musi mieć tylko jedną własność o nazwie Tekst typu string. 5. Do aplikacji dodać konwerter, który modyfikuje kolor czcionki w zależności od długości tekstu (w jakikolwiek sposób). 14 stycznia 2017 ---------------- 1. W aplikacji Kolory zmienić interfejs GUI w taki sposób, żeby suwaki (Slider) zastąpić przez pola edycyjne (TextBox). Użyć konwerterów parsujących liczby wpisywane do pól tekstowych. 2. Spróbować zmodyfikować klasę MvvmCommand, żeby zamiast parametru typu object, przyjmowała w metodach Execute i CanExecute parametr typu T będącym parametrem tej klasy. 3. Przenieść projekty z zajęć 10 grudnia 2016 do platformy UWP. [Aplikacjami UWP będą się Państwo zajmować na osobnym przedmiocie dot. aplikacji mobilnych. Warto jednak podjąć próbę przeniesienia tych prostych projektów, póki mają Państwo świeżą wiedzę o WPF.] 21 stycznia 2017 (15 lutego 2017) --------------------------------- W projekcie PasekPostepuSuwak: 1. 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%). 2. Zdefiniować zachowanie dla okna, które ustawia wszystkie suwaki w oknie na wartość wskazaną we własności zależności. 3. 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. 5. W zadaniu 4) z 10 grudnia 2017 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();. 6. Ś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. 25 lutego 2017 -------------- 1. Przygotować kontrolkę (np. przycisk) zawierającą gradientowy pędzel dla tła i napisu. 2. Kod XAML kontrolki przenieść do UserControl. 3. Zdefiniować (bez MVVM) kontrolkę użytkownika zawierającą: - TextBlock z napisem "Ścieżka pliku", - TextBox zawierającą ścieżkę wybranego pliku, - Button z napisem "...", którego kliknięcie powoduje utworzenie okna wyboru pliku. Ścieżka wybranego pliku zapisywana jest do kontrolki TextBox. Kontrolka udostępnia własność FilePath, która zwraca i pozwala przypisywać ścieżkę do wybranego pliku. (zob. też konkurs) 4. Do przycisku umieszczonego w oknie dodać animację płynnie zwiększającą jego rozmiar po najechaniu myszą. 3 marca 2017 ------------ 1. Obejrzeć film dot. zasad SOLID https://www.bing.com/videos/search?q=solid+uncle+bob&view=detail&mid=E37BDFAF0B22706615D9E37BDFAF0B22706615D9&FORM=VIRE 2. Do projektu "Zadania" rozwijanego na zajęciach, do klasy Zadania z modelu widoku dodać polecenie Zapisz, które wywołuje metodę zapisującą stan modelu do pliku XML. 3. Do widoku dodać kod XAML wywołujący polecenie Zapisz w momencie zamknięcia okna (omawiany wcześniej mechanizm zamiany zdarzeń na polecenia).