Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

DockPanel-Klasse

Aktualisiert: November 2007

Definiert einen Bereich, in dem Sie untergeordnete Elemente relativ zueinander entweder horizontal oder vertikal anordnen können.

Namespace:  System.Windows.Controls
Assembly:  PresentationFramework (in PresentationFramework.dll)
XMLNS für XAML: http://schemas.microsoft.com/winfx/xaml/presentation

public class DockPanel : Panel
public class DockPanel extends Panel
public class DockPanel extends Panel
<DockPanel>
  Children
</DockPanel>

Inhaltsmodell: DockPanel erzwingt ein starkes Inhaltsmodell für den Inhalt untergeordneter Elemente. Weitere Informationen über das Panel-Inhaltsmodell finden Sie unter der Children-Eigenschaft.

Die SetDock-Methode ändert die Position eines Elements relativ zu anderen Elementen innerhalb desselben Containers. Ausrichtungseigenschaften wie HorizontalAlignment ändern die Position eines Elements relativ zu seinem übergeordneten Element.

Wenn Sie die LastChildFill-Eigenschaft auf true festlegen (Standardwert), füllt das letzte untergeordnete Element eines DockPanel immer den verbleibenden Platz aus, unabhängig von anderen Dockwerten, die Sie für das letzte untergeordnete Element festlegen. Für das Andocken eines untergeordneten Elements in einer anderen Richtung müssen Sie die LastChildFill-Eigenschaft auf false festlegen und außerdem die Richtung für das Andocken des letzten untergeordneten Elements explizit angeben.

Bereichselemente erhalten standardmäßig nicht den Fokus. Um den Fokus für ein Bereichselement zu erzwingen, legen Sie die Focusable-Eigenschaft auf true fest.

Hinweis: Die Position der untergeordneten Elemente eines DockPanel auf dem Bildschirm wird durch die Dock-Eigenschaft der entsprechenden untergeordneten Elemente und die relative Reihenfolge dieser untergeordneten Elemente im DockPanel bestimmt. Daher kann ein Satz von untergeordneten Elementen mit demselben Dock-Eigenschaftenwert in Abhängigkeit ihrer Reihenfolge im DockPanel unterschiedlich auf dem Bildschirm positioniert werden. Die Reihenfolge der untergeordneten Elemente hat Auswirkungen auf die Positionierung, da DockPanel seine untergeordneten Elemente in dieser Reihenfolge durchläuft und die Position der einzelnen Elemente anhand des noch verfügbaren Platzes festlegt.

Im folgenden Beispiel wird ein einfaches Benutzeroberfläche (user interface, UI)-Framework mithilfe eines DockPanel-Elements erstellt. Das DockPanel teilt den verfügbaren Platz unter seinen untergeordneten Elementen auf.

In diesem Beispiel wird die Dock-Eigenschaft (eine angefügte Eigenschaft) verwendet, um zwei identische Border-Elemente an das Top des aufgeteilten Bereichs anzudocken. Ein drittes Border-Element, dessen Breite auf 200 Pixel festgelegt ist, wird an das Left angedockt. Ein viertes Border-Element wird an das Bottom-Objekt des Bildschirms angedockt. Das letzte Border-Element füllt automatisch den verbleibenden Platz aus.


// Create the application's main window
mainWindow = new Window ();
mainWindow.Title = "DockPanel Sample";

// Create the DockPanel
DockPanel myDockPanel = new DockPanel();
myDockPanel.LastChildFill = true;

// Define the child content
Border myBorder1 = new Border();
myBorder1.Height = 25;
myBorder1.Background = Brushes.SkyBlue;
myBorder1.BorderBrush = Brushes.Black;
myBorder1.BorderThickness = new Thickness(1);
DockPanel.SetDock(myBorder1, Dock.Top);
TextBlock myTextBlock1 = new TextBlock();
myTextBlock1.Foreground = Brushes.Black;
myTextBlock1.Text = "Dock = Top";
myBorder1.Child = myTextBlock1;

Border myBorder2 = new Border();
myBorder2.Height = 25;
myBorder2.Background = Brushes.SkyBlue;
myBorder2.BorderBrush = Brushes.Black;
myBorder2.BorderThickness = new Thickness(1);
DockPanel.SetDock(myBorder2, Dock.Top);
TextBlock myTextBlock2 = new TextBlock();
myTextBlock2.Foreground = Brushes.Black;
myTextBlock2.Text = "Dock = Top";
myBorder2.Child = myTextBlock2;

Border myBorder3 = new Border();
myBorder3.Height = 25;
myBorder3.Background = Brushes.LemonChiffon;
myBorder3.BorderBrush = Brushes.Black;
myBorder3.BorderThickness = new Thickness(1);
DockPanel.SetDock(myBorder3, Dock.Bottom);
TextBlock myTextBlock3 = new TextBlock();
myTextBlock3.Foreground = Brushes.Black;
myTextBlock3.Text = "Dock = Bottom";
myBorder3.Child = myTextBlock3;

Border myBorder4 = new Border();
myBorder4.Width = 200;
myBorder4.Background = Brushes.PaleGreen;
myBorder4.BorderBrush = Brushes.Black;
myBorder4.BorderThickness = new Thickness(1);
DockPanel.SetDock(myBorder4, Dock.Left);
TextBlock myTextBlock4 = new TextBlock();
myTextBlock4.Foreground = Brushes.Black;
myTextBlock4.Text = "Dock = Left";
myBorder4.Child = myTextBlock4;

Border myBorder5 = new Border();
myBorder5.Background = Brushes.White;
myBorder5.BorderBrush = Brushes.Black;
myBorder5.BorderThickness = new Thickness(1);
TextBlock myTextBlock5 = new TextBlock();
myTextBlock5.Foreground = Brushes.Black;
myTextBlock5.Text = "This content will Fill the remaining space";
myBorder5.Child = myTextBlock5;


// Add child elements to the DockPanel Children collection
myDockPanel.Children.Add(myBorder1);
myDockPanel.Children.Add(myBorder2);
myDockPanel.Children.Add(myBorder3);
myDockPanel.Children.Add(myBorder4);
myDockPanel.Children.Add(myBorder5);

// Add the parent Canvas as the Content of the Window Object
mainWindow.Content = myDockPanel;
mainWindow.Show ();



<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" WindowTitle="DockPanel Sample">
  <DockPanel LastChildFill="True">
    <Border Height="25" Background="SkyBlue" BorderBrush="Black" BorderThickness="1" DockPanel.Dock="Top">
      <TextBlock Foreground="Black">Dock = "Top"</TextBlock>
    </Border>
    <Border Height="25" Background="SkyBlue" BorderBrush="Black" BorderThickness="1" DockPanel.Dock="Top">
      <TextBlock Foreground="Black">Dock = "Top"</TextBlock>
    </Border>
    <Border Height="25" Background="LemonChiffon" BorderBrush="Black" BorderThickness="1" DockPanel.Dock="Bottom">
      <TextBlock Foreground="Black">Dock = "Bottom"</TextBlock>
    </Border>
    <Border Width="200" Background="PaleGreen" BorderBrush="Black" BorderThickness="1" DockPanel.Dock="Left">
      <TextBlock Foreground="Black">Dock = "Left"</TextBlock>
    </Border>
    <Border Background="White" BorderBrush="Black" BorderThickness="1">
      <TextBlock Foreground="Black">This content will "Fill" the remaining space</TextBlock>
    </Border>
  </DockPanel>
</Page>


ms609853.alert_note(de-de,VS.90).gifHinweis:

In den Standardeinstellungen füllt das letzte untergeordnete Element eines DockPanel-Elements den übrigen verfügbaren Platz aus. Wenn Sie dieses Verhalten nicht möchten, legen Sie LastChildFill="False" fest.

Die kompilierte Anwendung ergibt eine neue Benutzeroberfläche, die folgendermaßen aussieht.

Ein typisches DockPanel-Szenario.

Weiterer Code

Gewusst wie: Erstellen eines DockPanelIm folgenden Beispiel wird mithilfe von Code eine Instanz von DockPanel erstellt und verwendet. In diesem Beispiel wird das Aufteilen von Bereichen durch das Erstellen von fünf Rectangle-Elementen verdeutlicht und gezeigt, wie diese in einem übergeordneten DockPanel positioniert (angedockt) werden. Wenn Sie die Standardeinstellung beibehalten, füllt das abschließende Rechteck den gesamten verbleibenden Bereich aus.

System.Object
  System.Windows.Threading.DispatcherObject
    System.Windows.DependencyObject
      System.Windows.Media.Visual
        System.Windows.UIElement
          System.Windows.FrameworkElement
            System.Windows.Controls.Panel
              System.Windows.Controls.DockPanel

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows Vista

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0
Anzeigen: