WPF-perusteet ja koostetut komponentit - Viikkotehtävä 4
Tee valitsemasi taso WPF-ohjelmana. Käytä apunasi itse tehtyjä WPF User Control -komponentteja.
Kaikki syötteiden virheentarkistukset on tehtävä ExceptionValidationRule-luokan avulla jollei toisin määrätä.
Tehtävä on palautettava viimeistään 2.3.2012 klo 10:00.
Taso 1
Toteuta viikkotehtävä 1:en taso 1 tehtävä WPF-ohjelmana seuraavilla muutoksilla alkuperäiseen tehtävänantoon:
- Toteuta yhteenlasku omalla koostetulla WPF-komponentilla, joka sisältää
yhteenlaskukentät, laske-painikkeen sekä labelin laskutulosta varten.
- Yhteenlasku on suoritettava dependency propertyjen avulla eli kumpaakin yhteenlaskukenttää vastaa yksi int-tyyppinen dependency property
- Virheellinen syöte on osoitettava reunustamalla syöttökenttä punaisella värillä. Virheentarkistus on tehtävä ExceptionValidationRule-luokan avulla.
- Sijoita yhteenlaskukomponenttejasi kolme kappaletta ohjelmasi pääikkunaan. Tee sijoittelu käyttäen Dock Panelia tai Stack Panelia.
- Ohjelman pääikkunassa saa olla ohjelmakoodia vain about-ikkunan avaamista varten. Kaikki muu täytyy tehdä XAML-koodin avulla tai omassa komponentissa.
Taso 3
Toteuta viikkotehtävä 1:en taso 3 tehtävä WPF-ohjelmana seuraavilla muutoksilla alkuperäiseen tehtävänantoon:
- Toteuta ohjelma omilla koostetuilla WPF-komponenteilla:
- Puolueet-komponentti sisältää kentät joihin syötetään puolueiden pelaajien nimet. Kenttiin kelpuutetaan vain merkkejä eli ei numeroita eikä erikoismerkkejä.
- Jako-komponentti sisältää yhteen jakoon liittyvät puolueiden pistekentät ja yhteenlasketut pisteet. Komponentti osaa tarkistaa syötettyjen pisteiden oikeellisuuden eli kelpuuttaa kuhunkin kenttään luvut väliltä -5000 - 5000.
- Jaot-komponentti sisältää kaikki pelin jaot ja osaa laskea ja näyttää pelin pisteet pelattujen jakojen pisteiden alapuolella. Jaot-komponentti sisältää Laske-painikkeen. Yksittäiset jaot pitää sijoitella komponentin sisällä käyttäen jotakin layout-panelia.
- Virheentarkistukset ja virheistä käyttäjälle ilmoittaminen on toteutettava samaan tapaan kuin Taso 1 -tehtävässä mutta nyt täytyy luoda oma virheentarkistusluokka, joka yhdistetään kontrolliin XAML-koodissa samaan tapaan kuin ExceptionValidationRule-tarkistuskin.
- Pelin loputtua ohjelma ei avaa messageboksia vaan näyttää ikkunassa tekstinä ja numeroina ketkä saivat kuinkakin paljon pisteitä ja ketkä voittivat.
Taso 5
Toteuta viikkotehtävä 1:en taso 5 tehtävä WPF-ohjelmana seuraavilla muutoksilla alkuperäiseen tehtävänantoon:
- Toteuta taso 3:lla vaaditut komponentit samalla toiminnallisuudella mutta lisää komponentteihin alkuperäisen tehtävänannon laajennukset eli jako-komponentti mittaa jakoon käytetyn ajan. Käytä DispatcherTimer-luokkaa.
- Jaot-komponentti mittaa koko peliin kuluneen ajan ja ilmoittaa sen tulosten yhteydessä
- Pelin tallentaminen tehdään File-valikon Save-valinnalla haluttaessa vaikka kesken pelin
- Pelin lopputulos ilmoitetaan ja lasketaan vasta, kun kaikki pisteet on syötetty. Aiempien jakojen pisteitä voidaan muuttaa jälkikäteen ja muutokset osataan huomioida seuraavissa jaoissa ja lopputuloksen laskennassa.
- Lisää Puolueet-komponenttiin kaksi progressbaria, jotka kuvaavat kuinka paljon pisteitä kummallakin puolueella sillä hetkellä on. Toteuta progressbarien toiminta XAMLin ja komponentteihisi luomien dependency propertyjen avulla mahdollisimman vähällä ohjelmakoodilla.
- Koko ohjelman layout pitää toteuttaa panelien avulla. Sovelluksen pitää kauniisti sopeutua ikkunan koon muutoksiin. Ikkunan koko ei saa suurentua itsestään vaan scrollbarien avulla pitää mahduttaa kaikki tarpeellinen ikkunaan.

Käyttäjien kommentit