TOC

This article has been localized into Russian by the community.

Панели:

Элемент управления StackPanel

StackPanel (стелажная панель) очень схожа с WrapPanel, но есть одна значительная разница. StackPanel не подгоняет содержимое, вместо этого она растягивает все содержимое в одном направление, позволяя складывать элемент за элементом друг на друга. Давайте сперва попробуем сделать простой пример, подобный тому, который мы уже делали в WrapPanel

<Window x:Class="WpfTutorialSamples.Panels.StackPanel"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="StackPanel" Height="160" Width="300">
	<StackPanel>
		<Button>Button 1</Button>
		<Button>Button 2</Button>
		<Button>Button 3</Button>
		<Button>Button 4</Button>
		<Button>Button 5</Button>
		<Button>Button 6</Button>
	</StackPanel>
</Window>

Первое на что вы должны обратить внимание, так это то, что StackPanel абсолютно все-равно достаточно ли пространства для вашего содержимого или нет. StackPanel не будет сворачивать содержимое, так же не обеспечит вас возможностью прокручивания ( для этого можно использовать ScrollViewer - но об этом позже, в следующих главах)

Вы так же можете заметить, что начальное напраление у StackPanel - веритикальное, в отличие от WrapPanel - где начальное напраление горизонтальное. Но так же как и в WrapPanel это может быть легко измененно при помощи свойства Orientation (Horizontal/Vertical)

<StackPanel Orientation="Horizontal">

Следующие на что вы можете обратить внимание, так это, то , что StackPanel растягивает по умолчанию свой дочерний элемент. На вертикально выровненной StackPanel, как в первом примере, все дочерние элементы растянуты горизонтально. С горизонтальном выравнивание, все дочерние элементы растянуты вертикально, как это видно в примере выше. StackPanel устанавливает это при помощи свойств HorizontalAlignment или VerticalAlignment для своих дочерних элементов, но вы можете при необходимости их легко переписать. Просмотрите следующий пример, где мы используем такую же разметку, как и в предыдущем примере, но изменив значения VerticalAlignment для всех дочерних элементов

<Window x:Class="WpfTutorialSamples.Panels.StackPanel"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="StackPanel" Height="160" Width="300">
	<StackPanel Orientation="Horizontal">
		<Button VerticalAlignment="Top">Button 1</Button>
		<Button VerticalAlignment="Center">Button 2</Button>
		<Button VerticalAlignment="Bottom">Button 3</Button>
		<Button VerticalAlignment="Bottom">Button 4</Button>
		<Button VerticalAlignment="Center">Button 5</Button>
		<Button VerticalAlignment="Top">Button 6</Button>
	</StackPanel>
</Window>

Мы используем значения Top(верх), Center(центр) и Bottom(низ), что бы расположить в приятном стиле, ради удовольствия. То же самое можно проделать и для вертикально выровненной StackPanel, соответственно использую HorizontalAlignment для дочерних элементов

<Window x:Class="WpfTutorialSamples.Panels.StackPanel"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="StackPanel" Height="160" Width="300">
	<StackPanel Orientation="Vertical">
		<Button HorizontalAlignment="Left">Button 1</Button>
		<Button HorizontalAlignment="Center">Button 2</Button>
		<Button HorizontalAlignment="Right">Button 3</Button>
		<Button HorizontalAlignment="Right">Button 4</Button>
		<Button HorizontalAlignment="Center">Button 5</Button>
		<Button HorizontalAlignment="Left">Button 6</Button>
	</StackPanel>
</Window>

Как вы можете видеть элементы управления до сих пор идут сверху вниз, но вместо того что бы иметь общую ширину, каждый из них выровнен слева, справа или по центру

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!