TextBox class
TOC
Collapse the table of content
Expand the table of content

TextBox class

Represents a control that can be used to display and edit plain text (single or multi-line).

Text box control

The TextBox control enables a user to type text into an app. It's typically used to capture a single line of text, but can be configured to capture multiple lines of text. The text displays on the screen in a simple uniform plaintext format.

TextBox has a number of features that can simplify text entry. It comes with a familiar, built-in context menu with support for copying and pasting text. The "clear all" button lets a user quickly delete all text that has been entered. It also has spell checking capabilities built in and enabled by default.

Inheritance

Object
  DependencyObject
    UIElement
      FrameworkElement
        Control
          TextBox

Syntax


public class TextBox : Control

Members

The TextBox class has these types of members:

Constructors

The TextBox class has these constructors.

ConstructorDescription
TextBox Initializes a new instance of the TextBox class.

 

Events

The TextBox class has these events.

EventDescription
AccessKeyDisplayDismissed Occurs when the access key sequence is complete to notify controls that they should hide access key visuals. (Inherited from UIElement)
AccessKeyDisplayRequested Occurs when the access key sequence is started to notify controls that they should show access key visuals. (Inherited from UIElement)
AccessKeyInvoked Occurs when a user completes an access key sequence to notify the element that the access key action should be invoked. (Inherited from UIElement)
CandidateWindowBoundsChanged Occurs when the Input Method Editor (IME) window open, updates, or closes.
ContextCanceled Occurs when a context input gesture continues into a manipulation gesture, to notify the element that the context flyout should not be opened. (Inherited from UIElement)
ContextMenuOpening Occurs when the system processes an interaction that displays a context menu.
ContextRequested Occurs when the user has completed a context input gesture, such as a right-click. (Inherited from UIElement)
DataContextChanged Occurs when the value of the FrameworkElement.DataContext property changes. (Inherited from FrameworkElement)
DoubleTapped Occurs when an otherwise unhandled DoubleTap interaction occurs over the hit test area of this element. (Inherited from UIElement)
DragEnter Occurs when the input system reports an underlying drag event with this element as the target. (Inherited from UIElement)
DragLeave Occurs when the input system reports an underlying drag event with this element as the origin. (Inherited from UIElement)
DragOver Occurs when the input system reports an underlying drag event with this element as the potential drop target. (Inherited from UIElement)
DragStarting Occurs when a drag operation is initiated. (Inherited from UIElement)
Drop Occurs when the input system reports an underlying drop event with this element as the drop target. (Inherited from UIElement)
DropCompleted Occurs when a drag-and-drop operation is ended. (Inherited from UIElement)
FocusDisengaged Occurs when the control disengages game pad mouse simulation. (Inherited from Control)
FocusEngaged Occurs when the control engages game pad mouse simulation. (Inherited from Control)
GotFocus Occurs when a UIElement receives focus. (Inherited from UIElement)
Holding Occurs when an otherwise unhandled Hold interaction occurs over the hit test area of this element. (Inherited from UIElement)
IsEnabledChanged Occurs when the IsEnabled property changes. (Inherited from Control)
KeyDown Occurs when a keyboard key is pressed while the UIElement has focus. (Inherited from UIElement)
KeyUp Occurs when a keyboard key is released while the UIElement has focus. (Inherited from UIElement)
LayoutUpdated Occurs when the layout of the visual tree changes, due to layout-relevant properties changing value or some other action that refreshes the layout. (Inherited from FrameworkElement)
Loaded Occurs when a FrameworkElement has been constructed and added to the object tree, and is ready for interaction. (Inherited from FrameworkElement)
Loading Occurs when a FrameworkElement begins to load. (Inherited from FrameworkElement)
LostFocus Occurs when a UIElement loses focus. (Inherited from UIElement)
ManipulationCompleted Occurs when a manipulation on the UIElement is complete. (Inherited from UIElement)
ManipulationDelta Occurs when the input device changes position during a manipulation. (Inherited from UIElement)
ManipulationInertiaStarting Occurs when the input device loses contact with the UIElement object during a manipulation and inertia begins. (Inherited from UIElement)
ManipulationStarted Occurs when an input device begins a manipulation on the UIElement. (Inherited from UIElement)
ManipulationStarting Occurs when the manipulation processor is first created. (Inherited from UIElement)
Paste Occurs when text is pasted into the control.
PointerCanceled Occurs when a pointer that made contact abnormally loses contact. (Inherited from UIElement)
PointerCaptureLost Occurs when pointer capture previously held by this element moves to another element or elsewhere. (Inherited from UIElement)
PointerEntered Occurs when a pointer enters the hit test area of this element. (Inherited from UIElement)
PointerExited Occurs when a pointer leaves the hit test area of this element. (Inherited from UIElement)
PointerMoved Occurs when a pointer moves while the pointer remains within the hit test area of this element. (Inherited from UIElement)
PointerPressed Occurs when the pointer device initiates a Press action within this element. (Inherited from UIElement)
PointerReleased Occurs when the pointer device that previously initiated a Press action is released, while within this element. (Inherited from UIElement)
PointerWheelChanged Occurs when the delta value of a pointer wheel changes. (Inherited from UIElement)
RightTapped Occurs when a right-tap input stimulus happens while the pointer is over the element. (Inherited from UIElement)
SelectionChanged Occurs when the text selection has changed.
SizeChanged Occurs when either the ActualHeight or the ActualWidth property changes value on a FrameworkElement. (Inherited from FrameworkElement)
Tapped Occurs when an otherwise unhandled Tap interaction occurs over the hit test area of this element. (Inherited from UIElement)
TextChanged Occurs when content changes in the text box.
TextChanging Occurs synchronously when the text in the text box starts to change, but before it is rendered.
TextCompositionChanged Occurs when text being composed through an Input Method Editor (IME) changes.
TextCompositionEnded Occurs when a user stops composing text through an Input Method Editor (IME).
TextCompositionStarted Occurs when a user starts composing text through an Input Method Editor (IME).
Unloaded Occurs when this object is no longer connected to the main object tree. (Inherited from FrameworkElement)

 

Methods

The TextBox class has these methods. It also inherits methods from the Object class.

MethodDescription
AddHandler Adds a routed event handler for a specified routed event, adding the handler to the handler collection on the current element. Specify handledEventsToo as true to have the provided handler be invoked even if the event is handled elsewhere. (Inherited from UIElement)
ApplyTemplate Loads the relevant control template so that its parts can be referenced. (Inherited from Control)
Arrange Positions child objects and determines a size for a UIElement. Parent objects that implement custom layout for their child elements should call this method from their layout override implementations to form a recursive layout update. (Inherited from UIElement)
ArrangeOverride Provides the behavior for the Arrange pass of layout. Classes can override this method to define their own Arrange pass behavior. (Inherited from FrameworkElement)
CancelDirectManipulations Cancels ongoing direct manipulation processing (system-defined panning/zooming) on any ScrollViewer parent that contains the current UIElement. (Inherited from UIElement)
CapturePointer Sets pointer capture to a UIElement. Once captured, only the element that has capture will fire pointer-related events. (Inherited from UIElement)
ClearValue Clears the local value of a dependency property. (Inherited from DependencyObject)
FindName Retrieves an object that has the specified identifier name. (Inherited from FrameworkElement)
FindSubElementsForTouchTargeting Enables a UIElement subclass to expose child elements that assist with resolving touch targeting. (Inherited from UIElement)
Focus Attempts to set the focus on the control. (Inherited from Control)
GetAnimationBaseValue Returns any base value established for a dependency property, which would apply in cases where an animation is not active. (Inherited from DependencyObject)
GetBindingExpression Returns the BindingExpression that represents the binding on the specified property. (Inherited from FrameworkElement)
GetLinguisticAlternativesAsync Asynchronously gets a list of candidate words based on the provided phonetic characters in an Input Method Editor (IME).
GetRectFromCharacterIndex Returns a rectangular region for the leading or trailing edge of a character at a specific character index.
GetTemplateChild Retrieves the named element in the instantiated ControlTemplate visual tree. (Inherited from Control)
GetValue Returns the current effective value of a dependency property from a DependencyObject. (Inherited from DependencyObject)
GoToElementStateCore When implemented in a derived class, enables per-state construction of a visual tree for a control template in code, rather than by loading XAML for all states at control startup. (Inherited from FrameworkElement)
InvalidateArrange Invalidates the arrange state (layout) for a UIElement. After the invalidation, the UIElement will have its layout updated, which will occur asynchronously. (Inherited from UIElement)
InvalidateMeasure Invalidates the measurement state (layout) for a UIElement. (Inherited from UIElement)
Measure Updates the DesiredSize of a UIElement. Typically, objects that implement custom layout for their layout children call this method from their own MeasureOverride implementations to form a recursive layout update. (Inherited from UIElement)
MeasureOverride Provides the behavior for the Measure pass of the layout cycle. Classes can override this method to define their own Measure pass behavior. (Inherited from FrameworkElement)
OnApplyTemplate Invoked whenever application code or internal processes (such as a rebuilding layout pass) call ApplyTemplate. In simplest terms, this means the method is called just before a UI element displays in your app. Override this method to influence the default post-template logic of a class. (Inherited from FrameworkElement)
OnCreateAutomationPeer When implemented in a derived class, returns class-specific AutomationPeer implementations for the Microsoft UI Automation infrastructure. (Inherited from UIElement)
OnDisconnectVisualChildren Override this method to implement how layout and logic should behave when items are removed from a class-specific content or children property. (Inherited from UIElement)
OnDoubleTapped Called before the DoubleTapped event occurs. (Inherited from Control)
OnDragEnter Called before the DragEnter event occurs. (Inherited from Control)
OnDragLeave Called before the DragLeave event occurs. (Inherited from Control)
OnDragOver Called before the DragOver event occurs. (Inherited from Control)
OnDrop Called before the Drop event occurs. (Inherited from Control)
OnGotFocus Called before the GotFocus event occurs. (Inherited from Control)
OnHolding Called before the Holding event occurs. (Inherited from Control)
OnKeyDown Called before the KeyDown event occurs. (Inherited from Control)
OnKeyUp Called before the KeyUp event occurs. (Inherited from Control)
OnLostFocus Called before the LostFocus event occurs. (Inherited from Control)
OnManipulationCompleted Called before the ManipulationCompleted event occurs. (Inherited from Control)
OnManipulationDelta Called before the ManipulationDelta event occurs. (Inherited from Control)
OnManipulationInertiaStarting Called before the ManipulationInertiaStarting event occurs. (Inherited from Control)
OnManipulationStarted Called before the ManipulationStarted event occurs. (Inherited from Control)
OnManipulationStarting Called before the ManipulationStarting event occurs. (Inherited from Control)
OnPointerCanceled Called before the PointerCanceled event occurs. (Inherited from Control)
OnPointerCaptureLost Called before the PointerCaptureLost event occurs. (Inherited from Control)
OnPointerEntered Called before the PointerEntered event occurs. (Inherited from Control)
OnPointerExited Called before the PointerExited event occurs. (Inherited from Control)
OnPointerMoved Called before the PointerMoved event occurs. (Inherited from Control)
OnPointerPressed Called before the PointerPressed event occurs. (Inherited from Control)
OnPointerReleased Called before the PointerReleased event occurs. (Inherited from Control)
OnPointerWheelChanged Called before the PointerWheelChanged event occurs. (Inherited from Control)
OnRightTapped Called before the RightTapped event occurs. (Inherited from Control)
OnTapped Called before the Tapped event occurs. (Inherited from Control)
ReadLocalValue Returns the local value of a dependency property, if a local value is set. (Inherited from DependencyObject)
RegisterPropertyChangedCallback Registers a notification function for listening to changes to a specific DependencyProperty on this DependencyObject instance. (Inherited from DependencyObject)
ReleasePointerCapture Releases pointer captures for capture of one specific pointer by this UIElement. (Inherited from UIElement)
ReleasePointerCaptures Releases all pointer captures held by this element. (Inherited from UIElement)
RemoveFocusEngagement Disables game pad mouse simulation. (Inherited from Control)
RemoveHandler Removes the specified routed event handler from this UIElement. Typically the handler in question was added by AddHandler. (Inherited from UIElement)
Select Selects a range of text in the text box.
SelectAll Selects the entire contents of the text box.
SetBinding Attaches a binding to a FrameworkElement, using the provided binding object. (Inherited from FrameworkElement)
SetValue Sets the local value of a dependency property on a DependencyObject. (Inherited from DependencyObject)
StartDragAsync Initiates a drag-and-drop operation. (Inherited from UIElement)
TransformToVisual Returns a transform object that can be used to transform coordinates from the UIElement to the specified object. (Inherited from UIElement)
UnregisterPropertyChangedCallback Cancels a change notification that was previously registered by calling RegisterPropertyChangedCallback. (Inherited from DependencyObject)
UpdateLayout Ensures that all positions of child objects of a UIElement are properly updated for layout. (Inherited from UIElement)

 

Properties

The TextBox class has these properties.

PropertyAccess typeDescription

AcceptsReturn

Read/write

Gets or sets the value that determines whether the text box allows and displays the newline or return characters.

AcceptsReturnProperty

Read-only

Identifies the AcceptsReturn dependency property.

AccessKey

Read/write

Gets or sets the access key (mnemonic) for this element. (Inherited from UIElement)

AccessKeyScopeOwner

Read/write

Gets or sets a source element that provides the access key scope for this element, even if it's not in the visual tree of the source element. (Inherited from UIElement)

ActualHeight

Read-only

Gets the rendered height of a FrameworkElement. See Remarks. (Inherited from FrameworkElement)

ActualWidth

Read-only

Gets the rendered width of a FrameworkElement. See Remarks. (Inherited from FrameworkElement)

AllowDrop

Read/write

Gets or sets a value that determines whether this UIElement can be a drop target for purposes of drag-and-drop operations. (Inherited from UIElement)

AllowFocusOnInteraction

Read/write

Gets or sets a value that indicates whether the element automatically gets focus when the user interacts with it. (Inherited from FrameworkElement)

AllowFocusWhenDisabled

Read/write

Gets or sets whether a disabled control can receive focus. (Inherited from FrameworkElement)

Background

Read/write

Gets or sets a brush that provides the background of the control. (Inherited from Control)

BaseUri

Read-only

Gets a Uniform Resource Identifier (URI) that represents the base Uniform Resource Identifier (URI) for an XAML-constructed object at XAML load time. This property is useful for Uniform Resource Identifier (URI) resolution at run time. (Inherited from FrameworkElement)

BorderBrush

Read/write

Gets or sets a brush that describes the border fill of a control. (Inherited from Control)

BorderThickness

Read/write

Gets or sets the border thickness of a control. (Inherited from Control)

CacheMode

Read/write

Gets or sets a value that indicates that rendered content should be cached as a composited bitmap when possible. (Inherited from UIElement)

CanDrag

Read-only

Gets or sets a value that indicates whether the element can be dragged as data in a drag-and-drop operation. (Inherited from UIElement)

CharacterSpacing

Read/write

Gets or sets the uniform spacing between characters, in units of 1/1000 of an em. (Inherited from Control)

Clip

Read/write

Gets or sets the RectangleGeometry used to define the outline of the contents of a UIElement. (Inherited from UIElement)

CompositeMode

Read/write

Gets or sets a property that declares alternate composition and blending modes for the element in its parent layout and window. This is relevant for elements that are involved in a mixed XAML / Microsoft DirectX UI. (Inherited from UIElement)

ContextFlyout

Read/write

Gets or sets the flyout associated with this element. (Inherited from UIElement)

DataContext

Read/write

Gets or sets the data context for a FrameworkElement when it participates in data binding. (Inherited from FrameworkElement)

DefaultStyleKey

Read/write

Gets or sets the key that references the default style for the control. Authors of custom controls use this property to change the default for the style that their control uses. (Inherited from Control)

DesiredCandidateWindowAlignment

Read/write

Gets or sets a value that indicates the preferred alignment of the Input Method Editor (IME).

DesiredCandidateWindowAlignmentProperty

Read-only

Identifies the DesiredCandidateWindowAlignment dependency property.

DesiredSize

Read-only

Gets the size that this UIElement computed during the measure pass of the layout process. (Inherited from UIElement)

Dispatcher

Read-only

Gets the CoreDispatcher that this object is associated with. The CoreDispatcher represents a facility that can access the DependencyObject on the UI thread even if the code is initiated by a non-UI thread. (Inherited from DependencyObject)

ElementSoundMode

Read/write

Get or sets a value that specifies a control's preference for whether sounds are played. (Inherited from Control)

ExitDisplayModeOnAccessKeyInvoked

Read/write

Gets or sets a value that specifies whether the access key display is dismissed when an access key is invoked. (Inherited from UIElement)

FlowDirection

Read/write

Gets or sets the direction in which text and other UI elements flow within any parent element that controls their layout. This property can be set to either LeftToRight or RightToLeft. Setting FlowDirection to RightToLeft on any element sets the alignment to the right, the reading order to right-to-left and the layout of the control to flow from right to left. (Inherited from FrameworkElement)

FocusState

Read-only

Gets a value that specifies whether this control has focus, and the mode by which focus was obtained. (Inherited from Control)

FocusVisualMargin

Read/write

Gets or sets the outer margin of the focus visual for a FrameworkElement. (Inherited from FrameworkElement)

FocusVisualPrimaryBrush

Read/write

Gets or sets the brush used to draw the outer border of a HighVisibility focus visual for a FrameworkElement. (Inherited from FrameworkElement)

FocusVisualPrimaryThickness

Read/write

Gets or sets the thickness of the outer border of a HighVisibility focus visual for a FrameworkElement. (Inherited from FrameworkElement)

FocusVisualSecondaryBrush

Read/write

Gets or sets the brush used to draw the inner border of a HighVisibility focus visual for a FrameworkElement. (Inherited from FrameworkElement)

FocusVisualSecondaryThickness

Read/write

Gets or sets the thickness of the inner border of a HighVisibility focus visual for a FrameworkElement. (Inherited from FrameworkElement)

FontFamily

Read/write

Gets or sets the font used to display text in the control. (Inherited from Control)

FontSize

Read/write

Gets or sets the size of the text in this control. (Inherited from Control)

FontStretch

Read/write

Gets or sets the degree to which a font is condensed or expanded on the screen. (Inherited from Control)

FontStyle

Read/write

Gets or sets the style in which the text is rendered. (Inherited from Control)

FontWeight

Read/write

Gets or sets the thickness of the specified font. (Inherited from Control)

Foreground

Read/write

Gets or sets a brush that describes the foreground color. (Inherited from Control)

Header

Read/write

Gets or sets the content for the control's header.

HeaderProperty

Read-only

Identifies the Header dependency property.

HeaderTemplate

Read/write

Gets or sets the DataTemplate used to display the content of the control's header.

HeaderTemplateProperty

Read-only

Identifies the HeaderTemplate dependency property.

Height

Read/write

Gets or sets the suggested height of a FrameworkElement. (Inherited from FrameworkElement)

HorizontalAlignment

Read/write

Gets or sets the horizontal alignment characteristics that are applied to a FrameworkElement when it is composed in a layout parent, such as a panel or items control. (Inherited from FrameworkElement)

HorizontalContentAlignment

Read/write

Gets or sets the horizontal alignment of the control's content. (Inherited from Control)

InputScope

Read/write

Gets or sets the context for input used by this TextBox.

InputScopeProperty

Read-only

Identifies the InputScope dependency property.

IsAccessKeyScope

Read/write

Gets or sets a value that indicates whether an element defines its own access key scope. (Inherited from UIElement)

IsColorFontEnabled

Read/write

Gets or sets a value that determines whether font glyphs that contain color layers, such as Segoe UI Emoji, are rendered in color.

IsColorFontEnabledProperty

Read-only

Identifies the IsColorFontEnabled dependency property.

IsDoubleTapEnabled

Read/write

Gets or sets a value that determines whether the DoubleTapped event can originate from that element. (Inherited from UIElement)

IsEnabled

Read/write

Gets or sets a value indicating whether the user can interact with the control. (Inherited from Control)

IsFocusEngaged

Read/write

Get or sets a value that indicates whether game pad mouse simulation is engaged. (Inherited from Control)

IsFocusEngagementEnabled

Read/write

Get or sets a value that indicates whether game pad mouse simulation can be engaged. (Inherited from Control)

IsHitTestVisible

Read/write

Gets or sets whether the contained area of this UIElement can return true values for hit testing. (Inherited from UIElement)

IsHoldingEnabled

Read/write

Gets or sets a value that determines whether the Holding event can originate from that element. (Inherited from UIElement)

IsReadOnly

Read/write

Gets or sets the value that determines if the user can change the text in the text box.

IsReadOnlyProperty

Read-only

Identifies the IsReadOnly dependency property.

IsRightTapEnabled

Read/write

Gets or sets a value that determines whether the RightTapped event can originate from that element. (Inherited from UIElement)

IsSpellCheckEnabled

Read/write

Gets or sets a value that specifies whether the TextBox input interacts with a spell check engine.

IsSpellCheckEnabledProperty

Read-only

Identifies the IsSpellCheckEnabled dependency property.

IsTabStop

Read/write

Gets or sets a value that indicates whether a control is included in tab navigation. (Inherited from Control)

IsTapEnabled

Read/write

Gets or sets a value that determines whether the Tapped event can originate from that element. (Inherited from UIElement)

IsTextPredictionEnabled

Read/write

Gets or sets a value that determines whether text prediction features ("autocomplete") should be enabled for this TextBox.

IsTextPredictionEnabledProperty

Read-only

Identifies the IsTextPredictionEnabled dependency property.

IsTextScaleFactorEnabled

Read/write

Gets or sets whether automatic text enlargement, to reflect the system text size setting, is enabled. (Inherited from Control)

Language

Read/write

Gets or sets localization/globalization language information that applies to a FrameworkElement, and also to all child elements of the current FrameworkElement in the object representation and in UI. (Inherited from FrameworkElement)

ManipulationMode

Read/write

Gets or sets the ManipulationModes value used for UIElement behavior and interaction with gestures. Setting this value enables handling the manipulation events from this element in app code. (Inherited from UIElement)

Margin

Read/write

Gets or sets the outer margin of a FrameworkElement. (Inherited from FrameworkElement)

MaxHeight

Read/write

Gets or sets the maximum height constraint of a FrameworkElement. (Inherited from FrameworkElement)

MaxLength

Read/write

Gets or sets the value that specifies the maximum number of characters allowed for user input.

MaxLengthProperty

Read-only

Identifies the MaxLength dependency property.

MaxWidth

Read/write

Gets or sets the maximum width constraint of a FrameworkElement. (Inherited from FrameworkElement)

MinHeight

Read/write

Gets or sets the minimum height constraint of a FrameworkElement. (Inherited from FrameworkElement)

MinWidth

Read/write

Gets or sets the minimum width constraint of a FrameworkElement. (Inherited from FrameworkElement)

Name

Read/write

Gets or sets the identifying name of the object. When a XAML processor creates the object tree from XAML markup, run-time code can refer to the XAML-declared object by this name. (Inherited from FrameworkElement)

Opacity

Read/write

Gets or sets the degree of the object's opacity. (Inherited from UIElement)

Padding

Read/write

Gets or sets the padding inside a control. (Inherited from Control)

Parent

Read-only

Gets the parent object of this FrameworkElement in the object tree. (Inherited from FrameworkElement)

PlaceholderText

Read/write

Gets or sets the text that is displayed in the control until the value is changed by a user action or some other operation.

PlaceholderTextProperty

Read-only

Identifies the PlaceholderText dependency property.

PointerCaptures

Read-only

Gets the set of all captured pointers, represented as Pointer values. (Inherited from UIElement)

PreventKeyboardDisplayOnProgrammaticFocus

Read/write

Gets or sets a value that indicates whether the on-screen keyboard is shown when the control receives focus programmatically.

PreventKeyboardDisplayOnProgrammaticFocusProperty

Read-only

Identifies the PreventKeyboardDisplayOnProgrammaticFocus dependency property.

Projection

Read/write

Gets or sets the perspective projection (3-D effect) to apply when rendering this element. (Inherited from UIElement)

RenderSize

Read-only

Gets the final render size of a UIElement. (Inherited from UIElement)

RenderTransform

Read/write

Gets or sets transform information that affects the rendering position of a UIElement. (Inherited from UIElement)

RenderTransformOrigin

Read/write

Gets or sets the origin point of any possible render transform declared by RenderTransform, relative to the bounds of the UIElement. (Inherited from UIElement)

RequestedTheme

Read/write

Gets or sets the UI theme that is used by the UIElement (and its child elements) for resource determination. The UI theme you specify with RequestedTheme can override the app-level RequestedTheme. (Inherited from FrameworkElement)

RequiresPointer

Read/write

Gets or sets a value that indicates when an element requires a mouse-like pointer behavior from a game pad. (Inherited from Control)

Resources

Read/write

Gets the locally defined resource dictionary. In XAML, you can establish resource items as child object elements of a frameworkElement.Resources property element, through XAML implicit collection syntax. (Inherited from FrameworkElement)

SelectedText

Read/write

Gets or sets the content of the current selection in the text box.

SelectionHighlightColor

Read/write

Gets or sets the brush used to highlight the selected text.

SelectionHighlightColorProperty

Read-only

Identifies the SelectionHighlightColor dependency property.

SelectionLength

Read/write

Gets or sets the number of characters in the current selection in the text box.

SelectionStart

Read/write

Gets or sets the starting position of the text selected in the text box.

Style

Read/write

Gets or sets an instance Style that is applied for this object during layout and rendering. (Inherited from FrameworkElement)

TabIndex

Read/write

Gets or sets a value that determines the order in which elements receive focus when the user navigates through controls by pressing the Tab key. (Inherited from Control)

TabNavigation

Read/write

Gets or sets a value that modifies how tabbing and TabIndex work for this control. (Inherited from Control)

Tag

Read/write

Gets or sets an arbitrary object value that can be used to store custom information about this object. (Inherited from FrameworkElement)

Template

Read/write

Gets or sets a control template. The control template defines the visual appearance of a control in UI, and is defined in XAML markup. (Inherited from Control)

Text

Read/write

Gets or sets the text contents of the text box.

TextAlignment

Read/write

Gets or sets how the text should be aligned in the text box.

TextAlignmentProperty

Read-only

Identifies the TextAlignment dependency property.

TextProperty

Read-only

Identifies the Text dependency property.

TextReadingOrder

Read/write

Gets or sets a value that indicates how the reading order is determined for the TextBox.

TextReadingOrderProperty

Read-only

Identifies the TextReadingOrder dependency property.

TextWrapping

Read/write

Gets or sets how line breaking occurs if a line of text extends beyond the available width of the text box.

TextWrappingProperty

Read-only

Identifies the TextWrapping dependency property.

Transform3D

Read-only

Gets or sets the 3-D transform effect to apply when rendering this element. (Inherited from UIElement)

Transitions

Read/write

Gets or sets the collection of Transition style elements that apply to a UIElement. (Inherited from UIElement)

Triggers

Read-only

Gets the collection of triggers for animations that are defined for a FrameworkElement. Not commonly used. (Inherited from FrameworkElement)

UseLayoutRounding

Read/write

Gets or sets a value that determines whether rendering for the object and its visual subtree should use rounding behavior that aligns rendering to whole pixels. (Inherited from UIElement)

UseSystemFocusVisuals

Read/write

Gets or sets a value that indicates whether the control uses focus visuals that are drawn by the system or those defined in the control template. (Inherited from Control)

VerticalAlignment

Read/write

Gets or sets the vertical alignment characteristics that are applied to a FrameworkElement when it is composed in a parent object such as a panel or items control. (Inherited from FrameworkElement)

VerticalContentAlignment

Read/write

Gets or sets the vertical alignment of the control's content. (Inherited from Control)

Visibility

Read/write

Gets or sets the visibility of a UIElement. A UIElement that is not visible is not rendered and does not communicate its desired size to layout. (Inherited from UIElement)

Width

Read/write

Gets or sets the width of a FrameworkElement. (Inherited from FrameworkElement)

XYFocusDown

Read/write

Gets or sets the object that gets focus when a user presses the Directional Pad (D-pad) down. (Inherited from Control)

XYFocusLeft

Read/write

Gets or sets the object that gets focus when a user presses the Directional Pad (D-pad) left. (Inherited from Control)

XYFocusRight

Read/write

Gets or sets the object that gets focus when a user presses the Directional Pad (D-pad) right. (Inherited from Control)

XYFocusUp

Read/write

Gets or sets the object that gets focus when a user presses the Directional Pad (D-pad) up. (Inherited from Control)

 

Remarks

TextBox

Here's how to create a TextBox in XAML and in code.


<TextBox Width="500" Header="Notes" PlaceholderText="Type your notes here"/>


TextBox textBox = new TextBox();
textBox.Width = 500;
textBox.Header = "Notes";
textBox.PlaceholderText = "Type your notes here";
// Add the TextBox to the visual tree.
rootGrid.Children.Add(textBox);

The resulting TextBox looks like this. The blue border indicates that the TextBox has focus.

A simple text box

Is TextBox the right control to use?

You can use a TextBox control to display and edit unformatted text. If you need an editable text box that accepts passwords or other sensitive input, see PasswordBox. If you need a text box to enter search terms, see AutoSuggestBox. If you need to enter or edit formatted text, see RichEditBox.

Use TextBox for data input in a form

It’s common to use a TextBox to accept data input on a form, and use the Text property to get the complete text string from the TextBox. You typically use an event like a submit button Click to access the Text property, but you can handle the TextChanged or TextChanging event if you need to do something when the text changes. You can add a Header (or label) and PlaceholderText (or watermark) to the TextBox to give the user an indication of what the TextBox is for. To customize the look of the header, you can set the HeaderTemplate property instead of Header. For design info, see Guidelines for labels.

You can restrict the number of characters the user can type by setting the MaxLength property. However, MaxLength does not restrict the length of pasted text. Use the Paste event to modify pasted text if this is important for your app.

TextBox includes a clear all button ("x") that appears when text is entered in the box. When a user clicks the "x", the text in the TextBox is cleared. It looks like this.

A text box with a clear all button

The clear all button is shown only for editable, single-line text boxes that contain text and have focus.

The clear all button is not shown in any of these cases:

Make a TextBox read-only

You can make a TextBox read-only by setting the IsReadOnly property to true. For example, you might have a TextBox for a user to enter comments that is enabled only under certain conditions. You can make the TextBox read-only until the conditions are met. If you need only to display text, consider using a TextBlock or RichTextBlock instead.

Enable multi-line input

There are two properties that control whether the TextBox displays text on more than one line.

  • To let the text box allow and display the newline or return characters, set the AcceptsReturn property to true.
  • To enable text wrapping, set the TextWrap property to Wrap. (TextBox doesn't support the TextWrapping.WrapWholeWords enumeration value.)
A multi-line TextBox will continue to grow vertically as text is entered unless it’s constrained by its Height or MaxHeight property, or by a parent container. You should test that a multi-line TextBox doesn’t grow beyond its visible area, and constrain its growth if it does. Scrolling using a scroll-wheel or touch is automatically enabled when needed. However, vertical scrollbars are not shown by default. You can show the vertical scrollbars by setting the ScrollViewer.VerticalScrollBarVisibility to Auto on the embedded ScrollViewer, as shown here.

<TextBox AcceptsReturn="True" TextWrapping="Wrap" 
         MaxHeight="172" Width="300" Header="Description"
         ScrollViewer.VerticalScrollBarVisibility="Auto"/>


TextBox textBox = new TextBox();
textBox.AcceptsReturn = true;
textBox.TextWrapping = TextWrapping.Wrap;
textBox.MaxHeight = 172;
textBox.Width = 300;
textBox.Header = "Description";
ScrollViewer.SetVerticalScrollBarVisibility(textBox, ScrollBarVisibility.Auto);

Here's what the TextBox looks like after text is added.

A mullti line text box

Format the text display

Use the TextAlignment property to align text within a TextBox. To align the TextBox within the layout of the page, use the HorizontalAlignment and VerticalAlignment properties.

While the TextBox supports only unformatted text, you can customize how the text is displayed in the TextBox to match your branding. You can set standard Control properties like FontFamily, FontSize, FontStyle, Background, Foreground, and CharacterSpacing to change the look of the text. These properties affect only how the TextBox displays the text locally, so if you were to copy and paste the text into a rich text control, for example, no formatting would be applied.

This example shows a read-only TextBox with several properties set to customize the appearance of the text.


<TextBox Text="Sample Text" IsReadOnly="True" 
         FontFamily="Verdana" FontSize="24"
         FontWeight="Bold" FontStyle="Italic" 
         CharacterSpacing="200" Width="300"
         Foreground="Blue" Background="Beige"/>


TextBox textBox = new TextBox();
textBox.Text = "Sample Text";
textBox.IsReadOnly = true;
textBox.FontFamily = new FontFamily("Verdana");
textBox.FontSize = 24;
textBox.FontWeight = Windows.UI.Text.FontWeights.Bold;
textBox.FontStyle = Windows.UI.Text.FontStyle.Italic;
textBox.CharacterSpacing = 200;
textBox.Width = 300;
textBox.Background = new SolidColorBrush(Windows.UI.Colors.Beige);
textBox.Foreground = new SolidColorBrush(Windows.UI.Colors.Blue);
// Add the TextBox to the visual tree.
rootGrid.Children.Add(textBox);

The resulting TextBox looks like this.

A simple text box

Modify the context menu

By default, the commands shown in the TextBox context menu depend on the state of the TextBox. For example, the following commands can be shown when the TextBox is editable.

CommandShown when...
Copytext is selected.
Cuttext is selected.
Pastethe clipboard contains text.
Select allthe TextBox contains text.
Undotext has been changed.

 

To modify the commands shown in the context menu, handle the ContextMenuOpening event. For an example of this, see Scenario 2 of the ContextMenu sample. For design info, see Guidelines for context menus.

Selection, copy, and paste

You can get or set the selected text in a TextBox using the SelectedText property. Use the SelectionStart and SelectionLength properties, and the Select and SelectAll methods, to manipulate the text selection. Handle the SelectionChanged event to do something when the user selects or de-selects text. You can change the color used to highlight the selected text by setting the SelectionHighlightColor property.

TextBox supports copy and paste by default. You can provide custom handling of the Paste event on editable text controls in your app. For example, you might remove the line breaks from a multi-line address when pasting it into a single-line search box. Or, you might check the length of the pasted text and warn the user if it exceeds the maximum length that can be saved to a database. For more info and examples, see the Paste event.

Use a text box with the touch keyboard

The touch keyboard can be used for text entry when your app runs on a device with a touch screen. TextBox provides properties you can set to make it much faster and easier for users to enter data in your app using the touch keyboard. Set the InputScope property to match the kind of data the user is expected to enter. For example, if a TextBox is used only to enter a 4-digit PIN, set the InputScope property to Number. This tells the system to show the number keypad layout, which makes it easier for the user to enter the PIN.

Other properties that affect the touch keyboard are IsSpellCheckEnabled, IsTextPredictionEnabled, and PreventKeyboardDisplayOnProgrammaticFocus. (IsSpellCheckEnabled also affects the TextBox when a hardware keyboard is used.) For more info and examples, see Use input scope to change the touch keyboard, and the property documentation.

Control style and template

You can modify the default Style and ControlTemplate to give the control a unique appearance. For information about modifying a control's style and template, see Styling controls. The default style, template, and resources that define the look of the control are included in the generic.xaml file. For design purposes, generic.xaml is available in the \(Program Files)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\<SDK version>\Generic folder from a Windows Software Development Kit (SDK) installation. Styles and resources from different versions of the SDK might have different values.

Starting in Windows 10, version 1607 (Windows SDK version 10.0.14393.0), generic.xaml includes resources that you can use to modify the colors of a control in different visual states without modifying the control template. In apps that target this SDK or later, modifying these resources is preferred to setting properties such as Background and Foreground. For more info, see the Light-weight styling section of the Styling controls article.

This table shows the resources used by the TextBox control. Resources that start with "TextControl" are shared by TextBox, PasswordBox, RichEditBox, and AutoSuggestBox.

Resource keyDescription
TextControlForegroundText color at rest and not focused
TextControlForegroundPointerOverText color on hover
TextControlForegroundFocusedText color when focused
TextControlForegroundDisabledText color when disabled
TextControlBackgroundBackground color at rest and not focused
TextControlBackgroundPointerOverBackground color on hover
TextControlBackgroundFocusedBackground color when focused
TextControlBackgroundDisabledBackground color when disabled
TextControlBorderBrushBorder color at rest and not focused
TextControlBorderBrushPointerOverBorder color on hover
TextControlBorderBrushFocusedBorder color when focused
TextControlBorderBrushDisabledBorder color when disabled
TextControlPlaceholderForegroundPlaceholder text color at rest and not focused
TextControlPlaceholderForegroundPointerOverPlaceholder text color on hover
TextControlPlaceholderForegroundFocusedPlaceholder text color when focused
TextControlPlaceholderForegroundDisabledPlaceholder text color when disabled
TextControlHeaderForegroundHeader text color
TextControlHeaderForegroundDisabledHeader text color when disabled
TextControlSelectionHighlightColorHighlight color of selected text
TextControlButtonBackgroundBackground color of delete button at rest
TextControlButtonBackgroundPointerOverBackground color of delete button on hover
TextControlButtonBackgroundPressedBackground color of delete button when pressed
TextControlButtonBorderBrushBorder color of delete button at rest
TextControlButtonBorderBrushPointerOverBorder color of delete button on hover
TextControlButtonBorderBrushPressedBorder color of delete button when pressed
TextControlButtonForegroundForeground color of delete button at rest
TextControlButtonForegroundPointerOverForeground color of delete button on hover
TextControlButtonForegroundPressedForeground color of delete button when pressed

 

Examples

This example shows a TextBox with a header and placeholder text. The Text from the TextBox is used to show a greeting to the user.


<StackPanel>
    <TextBlock Text="What's your name?"/>
        <StackPanel Orientation="Horizontal" Margin="0,20,0,20">

            <TextBox x:Name="nameInput"
                     Header="Enter your name:" PlaceholderText="Name"
                     Width="300" HorizontalAlignment="Left"/>

            <Button Content="Hello button" Click="Button_Click"/>
        </StackPanel>
    <TextBlock x:Name="greetingOutput"/>
</StackPanel>


private void Button_Click(object sender, RoutedEventArgs e)
{
    greetingOutput.Text = "Hello, " + nameInput.Text + "!";
}

Requirements (Windows 10 device family)

Device family

Universal, introduced version 10.0.10240.0

API contract

Windows.Foundation.UniversalApiContract, introduced version 1.0

Namespace

Windows.UI.Xaml.Controls
Windows::UI::Xaml::Controls [C++]

Metadata

Windows.Foundation.UniversalApiContract.winmd

Requirements (Windows 8.x and Windows Phone 8.x)

Minimum supported client

Windows 8 [Windows Store apps only]

Minimum supported server

Windows Server 2012 [Windows Store apps only]

Minimum supported phone

Windows Phone 8.1 [Windows Runtime apps only]

Namespace

Windows.UI.Xaml.Controls
Windows::UI::Xaml::Controls [C++]

Metadata

Windows.winmd

Attributes

[MarshalingBehavior(Agile)]
[Threading(Both)]
[Version(0x06020000)]
[WebHostHidden()]

See also

Object
Control
TextBox styles and templates
How to use input scope to change the touch keyboard
Samples
XAML text editing sample
Design
Guidelines for text input
Guidelines for spell checking
Related controls
PasswordBox
RichEditBox
RichTextBlock
SearchBox
Controls list
Controls by function
Touch keyboard text input sample (Windows 10)

 

 

Show:
© 2016 Microsoft