Das TextBox-Steuerelement

Das wohl am meisten verwendete Steuer-element ist das TextBox-Steuerelement. Es dient zur Eingabe von Texten und bietet eine Menge von Eigenschaften, Ereignissen und Methoden, um damit zu arbeiten. Sie können ungebundene Textfelder nutzen, um Text einzugeben, der auf bestimmte Weise verarbeitet werden soll oder Textfelder über das Entity Data Model an die Datenquelle binden, um Datenbankinhalte anzuzeigen und zu bearbeiten. Dieser Artikel liefert die Grundlagen zum TextBox-Steuerelement unter WPF.

Ein Textfeld ist unter WPF schnell erstellt. Sie fügen einfach das öffnende und das schließende TextBox-Element in das Grid-Element ein und fügen dazwischen einen Text hinzu:

<Grid>
     <TextBox>Dies ist ein Beispieltext.</TextBox>
</Grid>

Das Textfeld nimmt dann allerdings den gesamten Platz im Grid ein, sodass wir noch ein paar Anpassungen vornehmen. Entweder wir legen die Position und die Größe absolut mit den Eigenschaften Width, Height, Top und Left fest oder wir fügen zum Grid einige Zeilen und Spalten hinzu, damit wir gleich mehrere Steuer-elemente gleichmäßig anordnen können. Wir wählen letztere Alternative, die Sie im Quellcode ansehen können und die im Entwurf wie in Bild 1 aussieht. Hier haben wir noch ein Label-Element in die erste Spalte der ersten Zeile eingefügt und das TextBox-Element in die zweite Spalte der ersten Zeile:

Textfeld mit Bezeichnungsfeld

Bild 1: Textfeld mit Bezeichnungsfeld

<Label>Beispieltext:</Label>
<TextBox Grid.Column="1">Dies ist ein Beispieltext.</TextBox>

Formatierter Text

Unterschiedliche Textformatierungen lassen sich mit dem TextBox-Steuerelement nicht anwenden oder anzeigen. Dazu benötigen wir beispielsweise das RichTextBox-Steuerelement.

Padding: Abstand des Inhalts zum Textfeldrand

Neben den Standardeigenschaften Width, Height, Top und Left benötigen Sie vermutlich noch die Eigenschaften Margin und Padding. Mit Padding stellen Sie den Abstand des Inhalts, also in der Regel des Textes, von den Begrenzungen des Steuerelements ein.

Soll der Abstand oben, unten, rechts und links gleich groß sein, legen Sie es zum Beispiel mit Padding=”3″ fest. Wenn Sie unterschiedliche Abstände wünschen, geben Sie die Werte durch Kommata getrennt an, wobei die Reihenfolge links, oben, rechts und unten lautet.

Margin: Abstand zu den umgebenden Steuerelementen

Mit der Eigenschaft Margin hingegen geben Sie den Abstand an, den das Steuer-element zu den umgebenden Steuerelementen aufweisen soll. Wenn Sie also etwa ein Grid verwenden, um die Steuer-elemente anzuordnen, und keinen Wert für Margin angeben, gibt es keinen Abstand zwischen den Steuerelementen. Um einen solchen Abstand herzustellen, legen Sie also etwa Margin=”3″ fest – so hat das Steuer-element jeweils einen Abstand von 3 zum nächsten angrenzenden Element, in diesem Fall zu den gedachten Linien des Grid-Elements.

Textfeld ausrichten

Für Textfelder gibt es die üblichen Möglichkeiten zur Ausrichtung. Für die horizontale Ausrichtung im Grid verwenden Sie die Eigenschaft HorizontalAlignment mit den Werten Center, Left, Right und Stretch. Für die vertikale Ausrichtung nutzen Sie die Eigenschaft VerticalAlignment mit den Werten Bottom, Center, Stretch und Top.

Text ausrichten

Natürlich können Sie auch den Text im Textfeld ausrichten. Dazu verwenden Sie die Eigenschaft TextAlignment mit den Werten Center, Justify, Left (Standardwert) und Right:

<TextBox Text="Mittig zentrierter Text" TextAlignment="Center"></TextBox>

Inhalt des Steuerelements

Den Inhalt des Steuerelements können Sie, wie oben gesehen, einfach zwischen das öffnende und schließende TextBox-Element einfügen. Dies entspricht der Verwendung der Eigenschaft Text:

<TextBox Text="Dies ist ein Beispieltext."></TextBox>

Eingebautes Kontextmenü

Das TextBox-Steuerelement liefert standardmäßig ein Kontextmenü mit den drei Befehlen Ausschneiden, Kopieren und Einfügen mit, das Sie wie üblich mit einem Klick der rechten Maustaste auf das Steuer-element anzeigen (siehe Bild 2). Dieses Kontextmenü können Sie anpassen. Wie das geht, erklären wir in einem weiteren Artikel namens Kontextmenüs unter WPF (www.datenbankentwickler.net/214).

Kontextmenü eines Textfeldes

Bild 2: Kontextmenü eines Textfeldes

Weitere Einträge kommen zum Kontextmenü hinzu, wenn die Rechtschreibprüfung aktiviert ist – siehe nächster Abschnitt.

Rechtschreibprüfung

Standardmäßig ist keine Rechtschreibprüfung für TextBox-Elemente aktiviert. Sie können diese jedoch leicht anschalten, indem Sie die Eigenschaft Spellcheck.IsEnabled auf den Wert True einstellen. Wenn Sie dann ein falsch geschriebenes Wort einfügen, wird dieses rot unterstrichen. Klicken Sie dann mit der rechten Maustaste auf das Wort, zeigt das Kontextmenü Verbesserungsvorschläge an (siehe Bild 3).

Rechtschreibprüfung im Textfeld mit Verbesserungsvorschlägen

Bild 3: Rechtschreibprüfung im Textfeld mit Verbesserungsvorschlägen

Eingabe kontrollieren

Wenn Sie sicherstellen wollen, dass nicht mehr als eine bestimmte Anzahl Zeichen in einem Textfeld landen, können Sie die Anzahl mit der Eigenschaft MaxLength begrenzen. Geben Sie einfach die maximale Anzahl als Wert an:

<TextBox MaxLength="50"></TextBox>

Textumbruch aktivieren

Normalerweise wird Text, der die Breite des Textfeldes übersteigt, einfach nicht komplett angezeigt (Voraussetzung dafür ist, dass sich das Textfeld nicht automatisch verbreitern kann – also wenn entweder eine feste Breite festgelegt oder die Breite des Fensters begrenzt ist). Das gilt auch für Textfelder, deren Höhe für die Darstellung von mehr als einer Zeile ausreicht. Wenn sie möchten, dass der Text am Ende des Textfeldes umgebrochen wird, können Sie die Eigenschaft TextWrapping verwenden. Diese bietet drei mögliche Werte an:

  • NoWrap: Standardwert, hier erfolgt kein Zeilenumbruch.
  • Wrap: Der Text wird am Ende des Textfeldes umgebrochen. Wenn es keine Möglichkeit durch ein Leerzeichen oder ähnliches Zeichen gibt, den Text am Wortende zu umbrechen, dann wird der Umbruch mitten im Wort eingefügt.
  • WrapWithOverflow: Der Text wird am Ende des Textfeldes umgebrochen. Wenn es keine Möglichkeit durch ein Leerzeichen oder ähnliches Zeichen gibt, den Text am Wortende zu umbrechen, dann erfolgt für dieses Wort kein Umbruch, sondern es wird abgeschnitten angezeigt.
<Label Grid.Row="1">Text mit TextWrapping=Wrap:</Label>
<TextBox Grid.Row="1" Grid.Column="1" Height="80" Width="200" TextWrapping="Wrap">    Dies ist ein Beispieltext mit automatischem Zeilenumbruch undeinemsehrsehrsehrsehrsehrlangenWort.</TextBox>
<Label Grid.Row="2">Text mit TextWrapping=WrapWithOverflow:</Label>
<TextBox Grid.Row="2" Grid.Column="1" Height="80" Width="200" TextWrapping="WrapWithOverflow">    Dies ist ein Beispieltext mit automatischem Zeilenumbruch undeinemsehrsehrsehrsehrsehrlangenWort.</TextBox>

Beispiele sehen Sie in Bild 4.

Beispiele für TextWrapping-Einstellungen

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins DATENBANKENTWICKLER:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 200 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar