TOC

This article has been localized into Slovak by the community.

Panely:

Grid - rozsah

Predvolené správanie Gridu spočíva v tom, že každý ovládací prvok zaberá jednu bunku, ale niekedy chcete, aby určitá kontrolka zaberala viac riadkov, alebo stĺpcov. Našťastie Grid to robí veľmi jednoducho s pripojenými vlastnosťami ColumnSpan a RowSpan. Predvolená hodnota pre túto vlastnosť je samozrejme 1, ale môžete špecifikovať väčšie číslo, aby kontrolky zaberali viac riadkov, alebo stĺpcov.

Tu je veľmi jednoduchý príklad, kde používame vlastnosť ColumnSpan:

<Window x:Class="WpfTutorialSamples.Panels.GridColRowSpan"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="GridColRowSpan" Height="110" Width="300">
	<Grid>
		<Grid.ColumnDefinitions>			
			<ColumnDefinition Width="1*" />
			<ColumnDefinition Width="1*" />
		</Grid.ColumnDefinitions>
		<Grid.RowDefinitions>
			<RowDefinition Height="*" />
			<RowDefinition Height="*" />
		</Grid.RowDefinitions>
		<Button>Button 1</Button>
		<Button Grid.Column="1">Button 2</Button>
		<Button Grid.Row="1" Grid.ColumnSpan="2">Button 3</Button>
	</Grid>
</Window>

Jednoducho definujeme dva stĺpce a dva riadky, pričom každý z nich zaberá rovnaký priestor. Prvé dve tlačidlá používajú stĺpce normálne, ale pri treťom tlačidle použijeme vlastnosť ColumnSpan, aby bolo roztiahnuté cez dva stĺpce v druhom riadku.

Je to tak jednoduché, že by sme mohli jednoducho použiť kombináciu panelov na dosiahnutie toho istého efektu, ale len pre o niečo pokročilejšie prípady je to naozaj užitočné. Skúsme niečo, čo lepšie ukazuje, aké silné to je:

<Window x:Class="WpfTutorialSamples.Panels.GridColRowSpanAdvanced"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="GridColRowSpanAdvanced" Height="300" Width="300">
    <Grid>
		<Grid.ColumnDefinitions>
			<ColumnDefinition Width="*" />
			<ColumnDefinition Width="*" />
			<ColumnDefinition Width="*" />
		</Grid.ColumnDefinitions>
		<Grid.RowDefinitions>
			<RowDefinition Height="*" />
			<RowDefinition Height="*" />
			<RowDefinition Height="*" />
		</Grid.RowDefinitions>
		<Button Grid.ColumnSpan="2">Button 1</Button>
		<Button Grid.Column="3">Button 2</Button>
		<Button Grid.Row="1">Button 3</Button>
		<Button Grid.Column="1" Grid.Row="1" Grid.RowSpan="2" Grid.ColumnSpan="2">Button 4</Button>
		<Button Grid.Column="0" Grid.Row="2">Button 5</Button>
	</Grid>
</Window>

S troma stĺpcami a troma riadkami by sme mali normálne deväť buniek, ale v tomto príklade používame kombináciu rozpätia riadkov a stĺpcov, čo vyplní všetok dostupný priestor len piatimi tlačidlami. Ako môžete vidieť, ovládací prvok môže sa môže rozpínať buď ďalšie stĺpce, ďalšie riadky, alebo v prípade tlačidla 4: na obe.

Takže ako môžete vidieť, preklenutie viacerých stĺpcov a/alebo riadkov v Gride je veľmi jednoduché. V ďalšom článku budeme používať spanning spolu so všetkými ostatnými technikami Gridu v praktickejšom príklade.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!