Опубликован: 15.06.2011 | Доступ: свободный | Студентов: 708 / 59 | Оценка: 4.25 / 4.00 | Длительность: 14:09:00
Лекция 11:

Silverlight. Элементы управления

DockPanel

Элемент DockPanel - один из новых элементов-контейнеров который входит в Silverlight Toolkit и определяет область, в которой можно упорядочить дочерние элементы горизонтально или вертикально относительно друг друга. Для того что бы использовать этот элемент необходимо добавить ссылку (reference) Systems.Windows.Controls.dll, и добавить в XAML код строчку:

<UserControl x:Class="chapter3.DockPanelDemo"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markupcompatibility/
2006"
xmlns:c="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
mc:Ignorable="d"
d:DesignHeight="600" d:DesignWidth="500">

На Рис. 22.4продемонстрировано два различных примера заполнения элемента DockPanel со свойством LastChildFill ( Свойство LastChildFill получает или задает значение, указывающее растягивается ли последний дочерний элемент в DockPanel с целью заполнения оставшегося доступного пространства) и значение true (значение по умолчанию true ).

Пример элемента управления DockPanel, значение свойства LastChildFill = true

Рис. 22.4. Пример элемента управления DockPanel, значение свойства LastChildFill = true

XAML код DockPanel - "1" (Рис 22.4.):

<c:DockPanel Height="200" Width="200" Grid.Column="0" Grid.Row="1">
<Button c:DockPanel.Dock="Left" Content="Left"/>
<Button c:DockPanel.Dock="Top" Content="Top"/>
<Button c:DockPanel.Dock="Right" Content="Right"/>
<Button c:DockPanel.Dock="Bottom" Content="Bottom"/>
<Button c:DockPanel.Dock="Bottom" Content="Last Child"/>
</c:DockPanel>

XAML код DockPanel - "2" (Рис 22.4.):

<c:DockPanel Height="200" Width="200" Grid.Column="1" Grid.Row="1">
<Button c:DockPanel.Dock="Top" Content="Top"/>
<Button c:DockPanel.Dock="Bottom" Content="Bottom"/>
<Button c:DockPanel.Dock="Left" Content="Left"/>
<Button c:DockPanel.Dock="Right" Content="Right"/>
<Button Content="Last Child"/>
</c:DockPanel>

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

Пример элемента управления DockPanel, значение свойства LastChildFill = false

Рис. 22.5. Пример элемента управления DockPanel, значение свойства LastChildFill = false

XAML код элемента DockPanel представленного на Рис. 22.5:

<c:DockPanel Height="200" Width="200"
Grid.Column="2" Grid.Row="1"
LastChildFill="False">
<Button c:DockPanel.Dock="Top" Content="Top"/>
<Button c:DockPanel.Dock="Bottom" Content="Bottom"/>
<Button c:DockPanel.Dock="Left" Content="Left"/>
<Button c:DockPanel.Dock="Right" Content="Right"/>
<Button c:DockPanel.Dock="Top" Content="Inner Top"/>
<Button c:DockPanel.Dock="Bottom" Content="Inner Bottom"/>
</c:DockPanel>

WrapPanel

Элемент WrapPanel - один из новых элементов-контейнеров который входит в Silverlight Toolkit. Размещает дочерние элементы последовательно слева направо, разбивая содержимое до следующей строки. Последующее размещение происходит последовательно сверху вниз или справа налево, в зависимости от значения свойства Orientation. Для того что бы использовать этот элемент необходимо добавить ссылку (reference) Systems.Windows.Controls.dll, и добавить в XAML код строчку:

xmlns:c="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
Таблица 22.2. Ключевые свойства класса System.Windows.Controls.WrapPanel
Свойство Тип Описание
ItemHeight Double Получает или задает значение, указывающее высоту всех элементов, содержащихся внутри WrapPanel.
ItemWidth Double Получает или задает значение, указывающее ширину всех элементов, содержащихся внутри WrapPanel.
Orientation Orientation Получает или задает значение, указывающее размерность, с которой располагается дочернее содержимое (Принимает значения Horizontal или Vertical ) .
Пример WrapPanelс горизонтальной ориентацией

Рис. 22.6. Пример WrapPanelс горизонтальной ориентацией

XAML код элемента WrapPanel представленного на Рис. 22.6:

<StackPanel>
<TextBlock Text="Horizontally Oriented WrapPanel Example"
Margin="5" FontWeight="Bold"/>
<c:WrapPanel Width="500" Height="250" Orientation="Horizontal">
<Image Width="150" Height="100" Margin="2" Source="res/1.jpg"/>
<Image Width="150" Height="100" Margin="2" Source="res/2.jpg"/>
<Image Width="150" Height="100" Margin="2" Source="res/3.jpg"/>
<Image Width="150" Height="100" Margin="2" Source="res/4.jpg"/>
<Image Width="150" Height="100" Margin="2" Source="res/5.jpg"/>
</c:WrapPanel>
</StackPanel>
Пример WrapPanel с вертикальной ориентацией

Рис. 22.7. Пример WrapPanel с вертикальной ориентацией