Gewusst wie: Unterstützen der Verwendbarkeit von TextBox mit einem Hintergrundbild

Aktualisiert: November 2007

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

Tipp

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>
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