Condividi tramite


Procedura: migliorare la possibilità di utilizzo di un controllo TextBox con un'immagine di sfondo

Aggiornamento: novembre 2007

Nell'esempio seguente viene mostrato come migliorare la possibilità di utilizzo di un oggetto TextBox visualizzando un'immagine di sfondo esplicativa all'interno di un oggetto TextBox fino a quando l'utente immette un testo; a quel punto l'immagine viene rimossa. Inoltre, l'immagine di sfondo viene ripristinata nuovamente se l'utente rimuove l'input. Vedere l'illustrazione di seguito.

TextBox con immagine di sfondo

Nota

La ragione per la quale in questo esempio viene utilizzata un'immagine di sfondo piuttosto che modificare semplicemente la proprietà Text dell'oggetto TextBox sta nel fatto che un'immagine di sfondo non interferisce con l'associazione dati.

Esempio

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

        }

    }

}

Vedere anche

Concetti

Cenni preliminari sulla classe TextBox

Cenni generali sul controllo RichTextBox