Reader Level:

WPF TextBox

By Mahesh Chand on Aug 21, 2008
This article shows how to use and work with the TextBox control available in WPF and XAML.

XAML <TextBox /> element represents the XAML TextBox control. This article discusses how to create a TextBox and set its various properties such as background and foreground colors, setting size and positions, fonts, wrapping, scrolling, and input validations.

Creating a TextBox

The <TextBox /> tag creates a text box.  The following syntaxes create text boxes: 

  • <TextBox />
  • <TextBox></TextBox>
  • <TextBox>Enter something here</TextBox>

This code snippet creates a text box with text in it.  

    <TextBox>Enter something here</TextBox>


The output of the above code snippet generates the the text box in Figure 1. The default position of text box is 0,0.


Figure 1.

Setting Size and Position

The Height and Width attributes sets the height and width of text box. Setting the position of a text box is little tricky. To set the position of the text box, you have to set the Top and Left positions of the parent XAML tag. For example, in our case, the parent tag for TextBox is Canvas. So I set Canvas.Top and Canvas.Left attributes to set the top and left position of the text box.  

<TextBox Width="200" Height="40" Canvas.Top="50" Canvas.Left="20">
        Enter something here


The new output looks like Figure 2. 


Figure 2.

Setting Background and Foreground Colors

The Background and Foreground attributes set the background and foreground colors of text box. The following code sets background color as red and foreground color as yellow for the text box. 

<TextBox Width="200" Height="40" Canvas.Top="50" Canvas.Left="20"
Background="Red" Foreground="Yellow">
        Enter something here

The text box with yellow foreground and red background looks like Figure 3.


Figure 3.

Setting Font

The FontFamily, FontSize, FontStyle, and FontWeight attributes set the font face, size, style, and weight of the text box font respectively. 

<TextBox Width="200" Height="40" Canvas.Top="50" Canvas.Left="20"
Background="Red" Foreground="Yellow"
FontFamily="Verdana" FontSize="14" FontStyle="Italic" FontWeight="ExtraBold">
        Enter something here

Here is the output with font verdana, size 14 points, style italic, and weight extra bold.


Figure 4.

Wrapping and Scrolling Text

The TextWrapping attributes sets the wrapping of text and VerticalScrollBarVisibility and HorizontalScrollBarVisibility sets the vertical and horizontal scroll bars visible. 

TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility ="Visible"

The new TextBox looks like Figure 5.


Figure 5.

Restricting Input Text

MaxHeight, MaxWidth, MaxLines, and MaxLength attributes of text box restricts the maximum height, maximum width, maximum number of lines, and maximum length of the text box. Similarly MinHeight, MinWidht, MinLines, and MinLength restricts the minimum height, minimum width, minimum number of lines, and minimum length of the text box. 

Setting IsReadOnly attribute to true makes the text box non editable.

Mahesh Chand
Mahesh Chand

C# Corner founder, 10-times Microsoft MVP, technical author, and software architect. Mahesh authored his first book, A Programmer’s Guide to ADO.NET in C# with APress at the age of 25. C# Corner is a memb... Read more



Custom Software Development
MCN is your source for developing solutions involving websites, mobile apps, cloud-computing, databases, BI, back-end services and processes and client-server applications.
Infragistics jQuery Controls

Trending up