Cómo: Mejorar la facilidad de uso de un control TextBox usando una imagen de fondo

Actualización: noviembre 2007

En el ejemplo siguiente se muestra cómo facilitar el uso de un control TextBox mostrando una imagen de fondo explicativa dentro de TextBox hasta que el usuario escribe texto, momento en que se quita la imagen. Además, la imagen de fondo se restaura si el usuario quita los datos proporcionados. Vea la ilustración siguiente.

TextBox con una imagen de fondo

Nota

La razón de utilizar una imagen de fondo en este ejemplo, en lugar de limitarnos a manipular la propiedad Text de TextBox, es que una imagen de fondo no interfiere con el enlace de datos.

Ejemplo

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

        }

    }

}

Vea también

Conceptos

Información general sobre TextBox

Información general sobre el control RichTextBox