2. Analýza a návrh řešení

2.1. Nastavení atributů pole

Do prvního řádku Grid  (s indexem 0) umístíme objekt typu GroupBox s titulkem Nastavení matice (matice je synonymum pro dvourozměrné pole) - viz Obrázek 1. Do tohoto objektu vložíme další mřížku Grid, pomocí které rozdělíme vnitřní prostor na dvě řádky. Do prvního řádku tohoto Grid umístíme popisek (Label) s textem "Matice". Do druhé řádky umístíme další mřížku Grid, pomocí níž rozdělíme vnitřní prostor tohoto řádku na tři sloupce. Do každého sloupce umístíme GroupBox pro nastavení rozměru matice, hodnot dolní a horní meze intervalu přípustných hodnot prvků matice a poslední sloupec bude obsahovat atributy pro možnosti plnění matice po jednotlivých prvcích, nebo pro změnu hodnoty určitého prvku matice. 

GroupBox pro nastavení rozměru, umístěný v prvním sloupci Grid, bude obsahovat další mřížku se dvěma řádky a dvěma sloupci. Do prvního řádku a prvního sloupce umístíme popisek (Label) s textem "Počet řádků". Do druhého sloupce ve stejném řádku vložíme vstupní pole (TextBox), ve kterém bude uživatel specifikovat počet řádků matice. Stejně budeme postupovat i v případu druhého řádku kde bude specifikován vertikální rozměr matice, tj. do prvního sloupce druhého řádku umístíme popisek (Label) s textem "Počet sloupců" a do druhého sloupce vstupní pole (TextBox) pro specifikaci počtu sloupců.

GroupBox pro nastavení dolní a horní meze hodnot prvků matice, umístěného ve druhém sloupci Grid, bude obsahovat další mřížku (Grid), kterou rozdělíme na dva řádky a dva sloupce. Do prvního řádku prvního sloupce této mřížky umístíme popisek (Label) "Minimum:". Tento popisek je popiskem pro vstupní pole (TextBox), kde uživatel specifikuje dolní mez hodnot prvků matice. Toto vstupní pole umístíme do druhého sloupce prvního řádku této mřížky. Stejným způsobem vyřešíme zadávání horní meze prvků matice, kde objekty typu Label a TextBox umístíme do prvního a druhého sloupce následujícího druhého řádku této mřížky. 

Další sloupec Grid necháme volný. Tento prostor bude vyplňovat zbývající místo při roztáhnutí, nebo zmenšení formuláře.

GroupBox pro plnění matice po jednotlivých prvcích, umístíme do posledního sloupce mřížky (Grid). V tomto GroupBox opět využijeme rozdělení prostoru na 2 řádky a 4 sloupce pomocí další vložené mřížky (Grid). Do prvního řádku a prvního sloupce mřížky umístíme popisek (Label) s textem "Index řádku:". Do dalšího sloupce ve stejném řádku umístíme vstupní pole (TextBox) pro specifikaci indexu řádku, kde se bude prvek v matici nacházet. V dalším řádku prvního sloupce umístíme popisek (Label) s textem "Index sloupce:". Do dalšího sloupce ve stejném řádku umístíme vstupní pole (TextBox) pro specifikaci indexu sloupce prvku matice.

Do prvního řádku do předposledního sloupce této mřížky umístíme popisek (Label) s textem "Hodnota:". Do posledního sloupce ve stejném řádku umístíme vstupní pole (TextBox) pro specifikaci hodnoty prvku s pozici (pomocí indexu řádku a sloupce), kterou uživatel zadal v druhém sloupci této mřížky. 

První řádek základní mřížky formuláře bude obsahovat objekty (kontrolky), které budou vnořeny následujícím způsobem:

  • Grid (první řádek základní mřížky formuláře)
    • GroupBox
      • Grid
        • Label
        • Grid
          • GroupBox
            • Grid
              • Label
              • TextBox: TxtPocetRadku
              • Label
              • TextBox: TxtPocetSloupcu
          • GroupBox
            • Grid
              • Label
              • TextBox: TxtMinHodnota
              • Label
              • TextBox: TxtMaxHodnota
          • GroupBox
            • Grid
              • Label
              • TextBox: TxtPrvekIndexRadku
              • Label
              • TextBox: TxtPrvekIndexSloupce
              • Label
              • TextBox: TxtHodnota

Formulář bude obsahovat následující prvky - viz Obrázek 2.


Obrázek 2: Návrh GUI - nastavení atributů pole - účel jednotlivých objektů v prvním řádku mřížky formuláře (DvourozmernePoleWPF)