Элемент DockPanel в WPF
Автор: Мэхеш Чанд (Mahesh Chand)
В этой статье будет показано, как использовать элемент WPF DockPanel с помощью XAML и C#.
Панель закрепления используется для закрепления дочерних элементов слева, справа, сверху и снизу относительно других элементов. Положение дочерних элементов определяется свойством Dock соответствующих дочерних элементов и связанным порядком этих дочерних элементов. Значением свойства Dock по умолчанию является Left (слева). Свойство Dock принимает значения типа перечисления Dock, состоящего из значений Left, Right, Top и Bottom.
Приведенный ниже код создает панель DockPanel с пятью элементами Button. Четыре кнопки закрепляются, а для пятой закрепление не задано, и она заполняет всю оставшуюся область.
<DockPanel Name="dcPanel">
<Button Name="TopRect" DockPanel.Dock="Top" Background="LightGreen"
Height="50" Content="Top"/>
<Button Name="LeftRect" DockPanel.Dock="Left" Background="LightBlue"
Width="50" Content="Left"/>
<Button Name="RightRect" DockPanel.Dock="Right" Background="LightSalmon"
Width="50" Content="Right"/>
<Button Name="BottomRect" DockPanel.Dock="Bottom" Background="LightCyan"
Height="50"/>
<Button Name="Fill" Background="LightGray" />
</DockPanel>
Рис. 1.
Класс DockPanel в WPF представляет собой элемент управления DockPanel. Приведенный ниже код создает панель закрепления динамически, добавляет на нее пять элементов управления Button и устанавливает их свойства закрепления, используя метод SetDock. Результатом кода примера является рис. 1.
private void CreateADockPanelDynamically()
{
// Создать DockPanel
DockPanel dcPanel = new DockPanel();
// Создать кнопку
Button TopRect = new Button();
TopRect.Background = new SolidColorBrush(Colors.LightGreen);
TopRect.Height = 50;
TopRect.Content = "Top";
// Закрепить кнопку сверху
DockPanel.SetDock(TopRect, Dock.Top);
// Добавить закрепленную кнопку на панель DockPanel
dcPanel.Children.Add(TopRect);
// Создать кнопку
Button LeftRect = new Button();
LeftRect.Background = new SolidColorBrush(Colors.LightBlue);
LeftRect.Width = 50;
LeftRect.Content = "Left";
// Закрепить кнопку слева
DockPanel.SetDock(LeftRect, Dock.Left);
// Добавить закрепленную кнопку на панель DockPanel
dcPanel.Children.Add(LeftRect);
// Создать кнопку
Button RightRect = new Button();
RightRect.Background = new SolidColorBrush(Colors.LightSalmon);
RightRect.Width = 50;
RightRect.Content = "Right";
// Закрепить кнопку слева
DockPanel.SetDock(RightRect, Dock.Right);
// Добавить закрепленную кнопку на панель DockPanel
dcPanel.Children.Add(RightRect);
// Создать кнопку
Button BottomRect = new Button();
BottomRect.Background = new SolidColorBrush(Colors.LightCyan);
BottomRect.Height = 50;
BottomRect.Content = "Bottom";
// Закрепить кнопку слева
DockPanel.SetDock(BottomRect, Dock.Bottom);
// Добавить закрепленную кнопку на панель DockPanel
dcPanel.Children.Add(BottomRect);
// Создать заполненную кнопку
Button FillRect = new Button();
BottomRect.Background = new SolidColorBrush(Colors.LightGray);
// Добавить закрепленную кнопку на панель DockPanel
dcPanel.Children.Add(FillRect);
RootWindow.Content = dcPanel;
}
Пример кода 1