WPF: Text und Eingabefelder

Um in WPF einen Text darzustellen, stehen uns die Steuerelemente Label, TextBlock und TextBox zur Verfügung. Das Label-Steuerelement kann nicht wie in Windows Forms für mehrzeiligen Text verwendet werden. Wollen wir einen Text über mehrere Zeilen anzeigen, so benötigen wir das Steuerelement TextBlock. Sowohl Label als auch TextBlock werden für statischen Text verwendet. Der Inhalt kann über die Eigenschaft Content oder innerhalb des Start- und End-Tags notiert werden. Der Text bei einem TextBlock-Steuerelement wird jedoch nicht automatisch umgebrochen. Wir müssen hierfür den Wert Wrap von der Enumeration TextWrapping der Eigenschaft TextWrapping zuweisen. Der Enumerations-Wert WrapWithOverflow löst ebenfalls einen Zeilenumbruch aus. Passt ein Wort nicht in eine ganze Zeile, so wird es nicht unterbrochen und läuft über die Grenzen hinaus (wird jedoch nicht angezeigt).
Die TextBox wird verwendet, um dem Benutzer eine Eingabe anzubieten. Hierbei kann der Inhalt über die Eigenschaft Text abgerufen werden. Über die Eigenschaft MaxLength (maximale Zeichenlänge) und MaxLines (maximale Zeilenanzahl) können wir den Inhalt des Eingabefelds begrenzen. Standardmäßig ist die TextBox einzeilig, weshalb wir über die Eigenschaft TextWrapping und einen passenden Wert der gleichnamigen Enumeration die Mehrzeiligkeit aktivieren können. Hierdurch ist es jedoch noch nicht erlaubt, die Enter-Taste zu drücken, um einen manuellen Zeilenumbruch auszulösen. Hierfür muss der Wert AcceptsReturn auf true gesetzt werden. Über das Event TextChanged können wir Änderungen am Text durch ein Ereignis feststellen und darauf reagieren. Ein Eingabefeld für Passwörter ist das Steuerelement PasswordBox. Hier können wir über die Eigenschaft PasswordChar das Zeichen festlegen, welches als Dummy-Zeichen für das Passwort angezeigt werden soll.

MainWindow.xaml

<TextBlock TextWrapping="Wrap" Height="60" Margin="10,10,10,0"
		   VerticalAlignment="Top" HorizontalAlignment="Left">
	Dies ist ein mehrzeiliger Text, weshalb wir den TextBlock als Element verwenden. In
	das untere Textfeld können Sie einen Text eingeben, welcher über ein Ereignis in einem
	Label angezeigt wird. Probieren Sie es aus ...
</TextBlock>
<TextBox Name="textBoxEingabe" Height="25" Width="150" Margin="20,80,0,0"
		 VerticalAlignment="Top" HorizontalAlignment="Left"
		 MaxLength="50" TextChanged="textBoxEingabe_TextChanged" />
<Label Name="labelEingabe" Height="25" Width="400" Margin="40,120,0,0" 
	   VerticalAlignment="Top" HorizontalAlignment="Left"
	   Content="Sie haben '' eingegeben!" />

MainWindow.xaml.cs
private void textBoxEingabe_TextChanged(object sender, TextChangedEventArgs e)
{
	labelEingabe.Content = "Sie haben '" + textBoxEingabe.Text + "' eingegeben!";
}
Download

LinksRechts