Gewusst wie: Hinzufügen eines Wasserzeichens zu einer TextBox
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 wiederhergestellt, wenn Benutzer*innen ihre Eingabe entfernen. Dies wird aus der folgenden Abbildung ersichtlich.
Hinweis
In diesem Beispiel wird ein Hintergrundbild verwendet wird, und nicht einfach die Text-Eigenschaft von TextBox, da ein Hintergrundbild die Datenbindung nicht beeinträchtigt.
Beispiel
Das folgende XAML 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 behandelt 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
Siehe auch
.NET Desktop feedback
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für