Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Im folgenden Beispiel wird gezeigt, wie Sie die Benutzerfreundlichkeit eines TextBox-Elements verbessern, indem Sie ein erläuterndes Hintergrundbild innerhalb des TextBox-Elements anzeigen. Wenn die Benutzer*innen beginnen Text einzugeben, wird das Bild entfernt. Darüber hinaus wird das Hintergrundbild erneut wiederhergestellt, wenn der Benutzer seine Eingabe entfernt. Siehe Abbildung unten.
Anmerkung
Der Grund, warum ein Hintergrundbild in diesem Beispiel verwendet wird, anstatt einfach die Text-Eigenschaft von TextBoxzu bearbeiten, besteht darin, dass ein Hintergrundbild die Datenbindung nicht beeinträchtigt.
Beispiel
Der folgende XAML-Code veranschaulicht Folgendes:
- Deklarieren der
watermark
-Ressource. Laden Sie das Bild von GitHub herunter. - Festlegen der
TextBox.Background
-Eigenschaft auf die Ressourcen. - Festlegen des
TextBox.TextChanged
-Ereignisses.
<Window x:Class="watermark.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="450" Width="800">
<Window.Resources>
<ImageBrush x:Key="watermark" ImageSource="textboxbackground.gif" AlignmentX="Left" Stretch="None" />
</Window.Resources>
<StackPanel>
<TextBox Name="myTextBox" TextChanged="OnTextBoxTextChanged" Width="200" Background="{StaticResource watermark}" />
</StackPanel>
</Window>
Der folgende Code verarbeitet das TextBox.TextChanged
-Ereignis:
private void OnTextBoxTextChanged(object sender, TextChangedEventArgs e)
{
if (sender is TextBox box)
{
if (string.IsNullOrEmpty(box.Text))
box.Background = (ImageBrush)FindResource("watermark");
else
box.Background = null;
}
}
Private Sub OnTextBoxTextChanged(sender As Object, e As TextChangedEventArgs)
If TypeOf sender Is TextBox Then
Dim box As TextBox = DirectCast(sender, TextBox)
If String.IsNullOrEmpty(box.Text) Then
box.Background = DirectCast(FindResource("watermark"), ImageBrush)
Else
box.Background = Nothing
End If
End If
End Sub
Weitere Informationen
.NET Desktop feedback