3. XAML

3.4. XAML - prvky formuláře

Následující XAML kód obsahuje nastavení formuláře - viz Kód 1. Pokud je zapotřebí zkopírujte XAML kód a vložte jej namísto řádky s nastavením vlastností okna (řádek začíná Title=....).

Title="Základní práce s maticí" Height="850" Width="850" MinHeight="800" MinWidth="800">

Kód 1: Nastavení vlastností formuláře

Grid

Následující zdrojový kód XAML obsahuje potřebné prvky na formuláři pro řešení úlohy, bez nastavení událostí - viz Kód 2. Pokud je zapotřebí, zkopírujte XAML kód a vložte jej mezi počáteční a koncovou značku prvku Grid.

<Grid.RowDefinitions>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="*"/>
    <RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- Nastavení matice -->
<GroupBox Header="Nastavení matice">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Label Content="Matice" FontSize="18" FontWeight="Bold" HorizontalAlignment="Center" />
        <Grid Grid.Row="1">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>
            <!-- Rozměry matice -->
            <GroupBox Header="Rozměry matice">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>
                    <Label Content="Počet řádků:" VerticalAlignment="Center"/>
                    <TextBox Name="TxtPocetRadku" Grid.Column="1" Width="100" Margin="5" Padding="5"/>
                    <Label Content="Počet sloupců:" Grid.Row="1" VerticalAlignment="Center"/>
                    <TextBox Name="TxtPocetSloupcu" Grid.Row="1" Grid.Column="1" Width="100" Margin="5" Padding="5"/>
                </Grid>
            </GroupBox>
            <!-- Hodnoty - meze -->
            <GroupBox Header="Hodnoty - meze" Grid.Column="1">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>
                    <Label Content="Minimum:" VerticalAlignment="Center"/>
                    <TextBox Name="TxtMinHodnota" Grid.Column="1" Width="100" Margin="5" Padding="5"/>
                    <Label Content="Maximum:" Grid.Row="1" VerticalAlignment="Center"/>
                    <TextBox Name="TxtMaxHodnota" Grid.Row="1" Grid.Column="1" Width="100" Margin="5" Padding="5"/>
                </Grid>
            </GroupBox>
            <!-- Prvek v matici -->
            <GroupBox Header="Prvek v matici" Grid.Column="3">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>
                    <Label Content="Index řádku:" Grid.Row="0" Grid.Column="0"/>
                    <TextBox Name="TxtPrvekIndexRadku" Grid.Row="0" Grid.Column="1" Width="100" Margin="5" Padding="5"/>
                    <Label Content="Index sloupce:" Grid.Row = "1" Grid.Column="0"/>
                    <TextBox Name="TxtPrvekIndexSloupce" Grid.Row="1" Grid.Column="1" Width="100" Margin="5" Padding="5"/>
                    <Label Content="Hodnota:" Grid.Row="0" Grid.Column="2"/>
                    <TextBox Name="TxtHodnota" Grid.Row="0" Grid.Column="3" Width="100" Margin="5" Padding="5"/>
                </Grid>
            </GroupBox>
        </Grid>
    </Grid>
</GroupBox>
<!-- Zobrazení matice -->
<GroupBox Header="Zobrazení matice" Grid.Row="1">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <!-- Matice -->
        <GroupBox Header="Mřížka" Margin="5" MinHeight="100">
            <ListView Name="LstMatice" ScrollViewer.VerticalScrollBarVisibility="Auto"/>
        </GroupBox>
        <!-- Výsledek -->
        <GroupBox Header="Jako text (nebo výpis výsledku)" Grid.Column="2" Margin="5">
            <TextBox Name="TxtVysledek" Margin="5" ScrollViewer.HorizontalScrollBarVisibility="Visible" 
                ScrollViewer.VerticalScrollBarVisibility="Visible" IsReadOnly="True" Background="AliceBlue"/>
        </GroupBox>
    </Grid>
</GroupBox>
<!-- Tlačítka - sekce: Plnit, Výstup, Výpočet -->
<StackPanel Grid.Row="4">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <!-- Plnit -->
        <StackPanel >
            <Label Content="Plnit:" FontWeight="Bold" FontSize="16" HorizontalAlignment="Center"/>
            <Button Name="BtnNahodne" Content="Náhodně" Margin="5" Padding="10,5"/>
            <Button Name="BtnJednotlive" Content="Jednotlivě" Margin="5" Padding="10,5"/>
            <Button Name="BtnNulovat" Content="Nulovat" Margin="5" Padding="10,5"/>
        </StackPanel>
        <!-- Výstup -->
        <StackPanel Grid.Column="1">
            <Label Content="Výstup:" FontWeight="Bold" FontSize="16" HorizontalAlignment="Center"/>
            <Button Name="BtnJakoText" Content="Jako text"  Margin="5" Padding="10,5"/>
            <Button Name="BtnDoMrizky" Content="Do mřížky" Margin="5" Padding="10,5"/>
        </StackPanel>
        <!-- Výpočet -->
        <StackPanel Grid.Column="2">
            <Label Content="Výpočet:" FontWeight="Bold" FontSize="16" HorizontalAlignment="Center"/>
            <Button Name="BtnMinimum" Content="Minimum"  Margin="5" Padding="10,5"/>
            <Button Name="BtnMaximum" Content="Maximum" Margin="5" Padding="10,5"/>
            <Button Name="BtnPrumer" Content="Průměr" Margin="5" Padding="10,5"/>
            <Button Name="BtnSeradit" Content="Seřadit" Margin="5" Padding="10,5"/>
            <Button Name="BtnTranspoziceHlavni" Content="Transpozice - hlavní diagonála" Margin="5" Padding="10,5"/>
            <Button Name="BtnTranspoziceVedlejsi" Content="Transpozice - vedlejší diagonála" Margin="5" Padding="10,5"/>
        </StackPanel>
    </Grid>
    <!-- Konec -->
    <WrapPanel HorizontalAlignment="Right">
        <Button Name="BtnKonec" Content="Konec" Margin="5" Width="100" Padding="5"/>
    </WrapPanel>
</StackPanel>

Kód 2: Prvky v Grid