Freigeben über


Gewusst wie: Hinzufügen eines Wasserzeichens zu einer TextBox

Im folgenden Beispiel wird veranschaulicht, wie die Verwendbarkeit eines TextBox unterstützt wird, indem ein erklärendes Hintergrundbild im TextBox angezeigt wird, bis der Benutzer Text eingibt. Dann wird das Bild entfernt. Außerdem wird das Hintergrundbild wiederhergestellt, wenn der Benutzer die Eingabe entfernt. Siehe folgende Abbildung.

Eine TextBox mit einem Hintergrundbild

HinweisHinweis

Der Grund für die Verwendung eines Hintergrundbilds in diesem Beispiel, statt einfach die Text-Eigenschaft von TextBox zu bearbeiten, ist, dass das Hintergrundbild keine Auswirkungen auf die Datenbindung hat.

Beispiel

<Page
  xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="SDKSample.TextBoxBackgroundExample"
  >

  <StackPanel>
    <TextBox Name="myTextBox" TextChanged="OnTextBoxTextChanged" Width="200">
      <TextBox.Background>
        <ImageBrush ImageSource="TextBoxBackground.gif" AlignmentX="Left" Stretch="None" />
      </TextBox.Background>
    </TextBox>
  </StackPanel>
</Page>

Namespace SDKSample
    Partial Public Class TextBoxBackgroundExample
        Inherits Page

        Private Sub OnTextBoxTextChanged(ByVal sender As Object, ByVal e As TextChangedEventArgs)

            If myTextBox.Text = "" Then

                ' Create an ImageBrush.
                Dim textImageBrush As New ImageBrush()

                textImageBrush.ImageSource =
                    New BitmapImage(New Uri("TextBoxBackground.gif", UriKind.Relative))
                textImageBrush.AlignmentX = AlignmentX.Left
                textImageBrush.Stretch = Stretch.None

                ' Use the brush to paint the button's background.
                myTextBox.Background = textImageBrush

            Else

                myTextBox.Background = Nothing
            End If

        End Sub

    End Class

End Namespace
using System;
using System.Windows;
using System.Windows.Input;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;

namespace SDKSample
{
    public partial class TextBoxBackgroundExample : Page
    {

        void OnTextBoxTextChanged(object sender, TextChangedEventArgs e)
        {

            if (myTextBox.Text == "")
            {
                // Create an ImageBrush.
                ImageBrush textImageBrush = new ImageBrush();
                textImageBrush.ImageSource =
                    new BitmapImage(
                        new Uri(@"TextBoxBackground.gif", UriKind.Relative)
                    );
                textImageBrush.AlignmentX = AlignmentX.Left;
                textImageBrush.Stretch = Stretch.None;
                // Use the brush to paint the button's background.
                myTextBox.Background = textImageBrush;

            }
            else
            {

                myTextBox.Background = null;
            }

        }

    }

}

Siehe auch

Konzepte

Übersicht über TextBox

Übersicht über RichTextBox