Exemplarische Vorgehensweise: Erstellen einer größenveränderbaren Anwendung mit dem WPF-Designer
Sie können das GridSplitter-Steuerelement zusammen mit dem Grid-Containersteuerelement verwenden, um ein Fensterlayout zu erstellen, dessen Größe vom Benutzer zur Laufzeit geändert werden kann. Beispielsweise kann der Benutzer in einer Anwendung mit einer in verschiedene Bereiche eingeteilten Oberfläche einen Splitter verschieben, um den Bereich zu vergrößern, an dem er gerade interessiert ist. In dieser exemplarischen Vorgehensweise wird das Layout für eine Messenger-Anwendung erstellt.
Im Verlauf dieser exemplarischen Vorgehensweise führen Sie folgende Aufgaben aus:
Erstellen Sie eine WPF-Anwendung.
Konfigurieren Sie den Standardrasterbereich.
Fügen Sie einen horizontalen GridSplitter hinzu.
Fügen Sie einen Dockbereich und Steuerelemente hinzu.
Fügen Sie einen Rasterbereich und Steuerelemente hinzu.
Testen Sie die Anwendung.
Die folgende Abbildung zeigt, wie die Anwendung angezeigt wird.
Tipp
Je nach den aktiven Einstellungen oder der Version unterscheiden sich die Dialogfelder und Menübefehle auf Ihrem Bildschirm möglicherweise von den in der Hilfe beschriebenen. Klicken Sie im Menü Extras auf Einstellungen importieren und exportieren, um die Einstellungen zu ändern. Weitere Informationen finden Sie unter Arbeiten mit Einstellungen.
Vorbereitungsmaßnahmen
Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:
- Visual Studio 2010
Erstellen des Projekts
Der erste Schritt besteht im Erstellen des Projekts für die Anwendung.
So erstellen Sie das Projekt
Erstellen Sie ein neues WPF-Anwendungsprojekt in Visual Basic oder Visual C# mit dem Namen ResizableApplication. Weitere Informationen finden Sie unter Gewusst wie: Erstellen eines neuen WPF-Anwendungsprojekts.
Tipp
Sie müssen in dieser exemplarischen Vorgehensweise keinen Code schreiben. Die Sprache, die Sie für das Projekt auswählen, ist die Sprache, die für die Code-Behind-Seiten in Ihrer Anwendung verwendet wird.
Die Datei MainWindow.xaml wird im WPF-Designer geöffnet.
Klicken Sie im Menü Datei auf Alle speichern.
Konfigurieren des Standardrasterbereichssteuerelements
Standardmäßig enthält die neue WPF-Anwendung ein Window mit einem Grid-Bereich. Um der empfohlenen Vorgehensweise zu folgen, wird das Grid dem GridSplitter zugeordnet. Der Plan für das Raster lautet wie folgt:
Zeile 1: Ein Dock-Bereich für den ersten Teil des Layouts.
Zeile 2: Ein GridSplitter.
Zeile 3: Ein Grid-Bereich für den Rest des Layouts.
So konfigurieren Sie das Standardrasterbereichssteuerelement
Wählen Sie in der Entwurfsansicht Grid aus. Weitere Informationen finden Sie unter Gewusst wie: Auswählen und Verschieben von Elementen auf der Entwurfsoberfläche.
Suchen Sie im Fenster Eigenschaften die RowDefinitions-Eigenschaft, und klicken Sie in der Spalte mit dem Eigenschaftswert auf die Schaltfläche mit den Auslassungszeichen.
Der Auflistungs-Editor wird angezeigt.
Klicken Sie dreimal auf Hinzufügen, um drei Zeilen hinzuzufügen.
Legen Sie die Height-Eigenschaft der zweiten Zeile auf Automatisch fest.
Legen Sie die MinHeight-Eigenschaft der dritten Zeile auf 70 fest.
Klicken Sie auf OK, um den Auflistungs-Editor zu schließen und zum WPF-Designer zurückzukehren.
Jetzt enthält das Raster drei Zeilen, es werden jedoch nur zwei Zeilen angezeigt. Die Zeile, deren Height-Eigenschaft auf Automatisch festgelegt wurde, ist vorübergehend ausgeblendet, da sie keine Inhalte enthält. Für diese exemplarische Vorgehensweise ist dies in Ordnung. Um dies künftig zu vermeiden, können Sie die Größenanpassung mit dem Sternchen verwenden, während Sie arbeiten, und den Wert auf Automatisch ändern, wenn Sie damit fertig sind.
Klicken Sie im Menü Datei auf Alle speichern.
Hinzufügen eines horizontalen GridSplitter
Fügen Sie als Nächstes einen GridSplitter hinzu.
So fügen Sie einen horizontalen GridSplitter hinzu
Wählen Sie in der Entwurfsansicht Grid aus.
Ziehen Sie aus der Toolbox ein GridSplitter-Steuerelement auf das Grid.
Legen Sie im Fenster Eigenschaften die folgenden Eigenschaften für den GridSplitter fest:
Eigenschaft
Wert
ResizeDirection
Rows
Grid.Column
0
Grid.ColumnSpan
1
Grid.Row
1
Grid.RowSpan
1
Breite
Auto
Höhe
10
HorizontalAlignment
Stretch
VerticalAlignment
Stretch
Margin
0
Klicken Sie im Menü Datei auf Alle speichern.
Hinzufügen eines Dockbereichs und eines Steuerelements
Jetzt fügen Sie einen DockPanel hinzu und richten das Layout der oberen Hälfte der Anwendung ein. Der DockPanel enthält ein Label und ein RichTextBox. Die Farbe des Label und des RichTextBox wird festgelegt, um die Größe der oberen Hälfte der Anwendung hervorzuheben, wenn der GridSplitter verschoben wird.
So fügen Sie einen Dockbereich und ein Steuerelement hinzu
Wählen Sie in der Entwurfsansicht Grid aus.
Ziehen Sie aus der Toolbox ein DockPanel-Steuerelement auf das Grid.
Legen Sie im Fenster Eigenschaften die folgenden Eigenschaften für den DockPanel fest:
Eigenschaft
Wert
Grid.Column
0
Grid.ColumnSpan
1
Grid.Row
0
Grid.RowSpan
1
LastChildFill
True (Aktiviert)
Breite
Auto
Höhe
Auto
HorizontalAlignment
Stretch
VerticalAlignment
Stretch
Margin
0
Ziehen Sie aus der Toolbox ein Label-Steuerelement auf den DockPanel.
Legen Sie im Fenster Eigenschaften die folgenden Eigenschaften für die Label fest:
Eigenschaft
Wert
Background
Blau (#FF0000FF)
Vordergrund
Weiß (#FFFFFFFF)
Inhalt
Anzeige
DockPanel.Dock
Top
Breite
Auto
Höhe
23
HorizontalAlignment
Stretch
VerticalAlignment
Stretch
Margin
0
Wählen Sie in der Entwurfsansicht DockPanel aus.
Tipp
Da sich mehrere Steuerelemente auf dem Raster befinden, kann mit der TAB-TASTE, mit dem Fenster Dokumentgliederung oder mit der XAML-Ansicht der DockPanel einfacher ausgewählt werden. Weitere Informationen finden Sie unter Gewusst wie: Auswählen und Verschieben von Elementen auf der Entwurfsoberfläche.
Ziehen Sie aus der Toolbox ein RichTextBox-Steuerelement auf den DockPanel.
Legen Sie im Fenster Eigenschaften die folgenden Eigenschaften für das RichTextBox fest:
Eigenschaft
Wert
Background
Hellblau (#FFADD8E6)
DockPanel.Dock
Bottom
Breite
Auto
Höhe
Auto
HorizontalAlignment
Stretch
VerticalAlignment
Stretch
Margin
0
IsReadOnly
True (Aktiviert)
Klicken Sie im Menü Datei auf Alle speichern.
Hinzufügen eines Dockbereichs und von Steuerelementen
Fügen Sie jetzt ein Grid hinzu, und richten Sie das Layout der unteren Hälfte der Anwendung ein. Das Grid enthält ein Button und ein RichTextBox. Die Farbe des RichTextBox wird festgelegt, um die Größe der unteren Hälfte der Anwendung hervorzuheben, wenn der GridSplitter verschoben wird.
So fügen Sie einen Rasterbereich und Steuerelemente hinzu
Wählen Sie in der Entwurfsansicht Grid aus.
Ziehen Sie aus der Toolbox ein Grid-Steuerelement auf den Grid.
Legen Sie im Fenster Eigenschaften die folgenden Eigenschaften für das neue Grid fest:
Eigenschaft
Wert
Grid.Column
0
Grid.ColumnSpan
1
Grid.Row
2
Grid.RowSpan
1
Breite
Auto
Höhe
Auto
HorizontalAlignment
Stretch
VerticalAlignment
Stretch
Margin
0
Suchen Sie im Fenster Eigenschaften die ColumnDefinitions-Eigenschaft, und klicken Sie in der Spalte mit dem Eigenschaftswert auf die Schaltfläche mit den Auslassungszeichen.
Der Auflistungs-Editor wird angezeigt.
Klicken Sie zweimal auf Hinzufügen, um zwei Spalten hinzuzufügen.
Legen Sie die Width-Eigenschaft der zweiten Spalte auf Automatisch fest.
Klicken Sie auf OK, um den Auflistungs-Editor zu schließen und zum WPF-Designer zurückzukehren.
Ziehen Sie aus der Toolbox ein Button-Steuerelement auf das Grid.
Legen Sie im Fenster Eigenschaften die folgenden Eigenschaften für die Button fest:
Eigenschaft
Wert
Inhalt
OK
Grid.Column
1
Grid.ColumnSpan
1
Grid.Row
0
Grid.RowSpan
1
Breite
60
Höhe
60
HorizontalAlignment
Stretch
VerticalAlignment
Stretch
Margin
5
Ziehen Sie aus der Toolbox ein RichTextBox-Steuerelement auf das Grid.
Legen Sie im Fenster Eigenschaften die folgenden Eigenschaften für das RichTextBox fest:
Eigenschaft
Wert
Hintergrund
PaleGoldenrod (#FFEEE8AA)
Grid.Column
0
Grid.ColumnSpan
1
Grid.Row
0
Grid.RowSpan
1
Breite
Auto
Höhe
Auto
HorizontalAlignment
Stretch
VerticalAlignment
Stretch
Margin
0
IsReadOnly
False (Deaktiviert)
Klicken Sie im Menü Datei auf Alle speichern.
Testen der Anwendung
Abschließend wird die Anwendung getestet.
So testen Sie die Anwendung
Klicken Sie im Menü Debuggen auf Debuggen starten.
Die Anwendung wird gestartet und MainWindow wird angezeigt.
Ändern Sie die Größe des Fensters sowohl vertikal als auch horizontal.
Die beiden Hälften der Anwendung (oben, unten) vergrößern oder verkleinern sich, um den verfügbaren Platz auszunutzen.
Ziehen Sie den Splitter, um die Größe der Anwendungsteilbereiche zu ändern. Verkleinern Sie einen Teil der Anwendung im Verhältnis zum anderen.
Ändern Sie wieder die Größe des Fensters.
Die beiden Hälften der Anwendung (oben, unten) vergrößern oder verkleinern sich proportional in Abhängigkeit von der Position des Splitters.
Ziehen Sie den Splitter in der Anwendung so weit nach oben wie möglich.
Es wird nur noch die untere Hälfte, nicht mehr die obere Hälfte der Anwendung angezeigt.
Ziehen Sie den Splitter in der Anwendung so weit nach unten wie möglich.
Die untere Hälfte der Anwendung wird immer noch angezeigt. Das liegt daran, dass Sie die MinHeight-Eigenschaft der dritten Zeile auf 70 festgelegt haben.
Tipp
70 = 60 (Höhe der Schaltfläche) + 5 (oberer Rand der Schaltfläche) + 5 (unterer Rand der Schaltfläche)
- Schließen Sie das Fenster.
Die Komponenten im Zusammenhang
Nachfolgend wird die vollständige Datei MainWindow.xaml dargestellt:
<Window x:Class="MainWindow"
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="300" Width="300">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
<RowDefinition MinHeight="70" />
</Grid.RowDefinitions>
<DockPanel Grid.Row="0" Grid.RowSpan="1" HorizontalAlignment="Stretch" Margin="0" Name="DockPanel1">
<Label DockPanel.Dock="Top" Height="23" Width="Auto" Background="Blue" Foreground="White" Name="Label1">Display</Label>
<RichTextBox DockPanel.Dock="Bottom" Height="Auto" Width="Auto" Background="LightBlue" IsReadOnly="True" Name="RichTextBox1" />
</DockPanel>
<GridSplitter Grid.Row="1" Grid.RowSpan="1" ResizeDirection="Rows" Width="Auto" Height="10" HorizontalAlignment="Stretch" Margin="0" Name="GridSplitter1" />
<Grid Grid.Row="2" HorizontalAlignment="Stretch" Margin="0" Name="Grid1">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Button Grid.Column="1" HorizontalAlignment="Stretch" Margin="5" Width="60" Height="60" Name="Button1">OK</Button>
<RichTextBox Grid.Column="0" Grid.ColumnSpan="1" HorizontalAlignment="Stretch" Margin="0" Background="PaleGoldenrod" Name="RichTextBox2" />
</Grid>
</Grid>
</Window>
Nächste Schritte
Die Anwendung, die Sie in dieser exemplarischen Vorgehensweise erstellt haben, enthält einen horizontalen Splitter. Sie können experimentieren, indem Sie dieselbe Anwendung erstellen und stattdessen einen vertikalen Splitter verwenden.
Anhand der erstellten Anwendung wurden nur Layouttechniken demonstriert. Sie können weiter experimentieren, indem Sie Code hinzufügen, um die Anwendung funktionsfähig zu machen. Es kann beispielsweise Code zu dem Click-Ereignis der Schaltfläche hinzugefügt werden, mit dem Text vom oberen Textfeld zum unteren Textfeld kopiert wird.
Siehe auch
Aufgaben
Gewusst wie: Erstellen von durch Benutzer größenveränderbare Anwendungen mit GridSplitter
Konzepte
Layout mit absoluter und dynamischer Positionierung