Controls by function (HTML)
[ This article is for Windows 8.x and Windows Phone 8.x developers writing Windows Runtime apps. If you’re developing for Windows 10, see the latest documentation ]
Windows Runtime apps using JavaScript offer controls that perform many functions. You can select the appropriate control for your scenario by comparing controls that offer similar functionality. (For an alphabetical list of controls, see the Controls list.)
See these features in action as part of our App features, start to finish series : Windows Store app UI, start to finish
App bars and commands
app bar
Provides a toolbar for displaying app-specific commands.<div data-win-control="WinJS.UI.AppBar"></div>
Reference: WinJS.UI.AppBar
context menu
Provides a lightweight menu that gives users access to actions (like clipboard commands) on text or UI objects in Windows Runtime apps using JavaScript.var menu = new Windows.UI.Popups.PopupMenu();
Reference: Windows.UI.Popups.PopupMenu
menu (Windows only)
Displays a menu.<div data-win-control="WinJS.UI.Menu"></div>
Reference: Menu
menu command (Windows only)
Represents a command to be displayed in a Menu object.<button data-win-control="WinJS.UI.MenuCommand" />
Reference: MenuCommand
navigation bar (Windows only)
Displays navigation commands in a toolbar that the user can show or hide.<div data-win-control="WinJS.UI.NavBar"></div>
Reference: WinJS.UI.NavBar
navigation bar command (Windows only)
Represents a navigation command in a navigation bar container.<div data-win-control="WinJS.UI.NavBarCommand"></div>
Reference: WinJS.UI.NavBarCommand
navigation bar container (Windows only)
Contains a group of navigation bar commands in a navigation bar.<div data-win-control="WinJS.UI.NavBarContainer"></div>
Reference: WinJS.UI.NavBarContainer
popup menu
See the entry for "context menu".toolbar
Displays a set of commands. A Toolbar can appear in any location, including in a Flyout or an AppBar.<div data-win-control="WinJS.UI.Toolbar"> </div>
Reference: Toolbar
Buttons
back button (Windows only)
Provides backwards navigation in the form of a button.<div><button data-win-control="WinJS.UI.BackButton"></div>
Reference: WinJS.UI.WinJS.UI.BackButton
button
Represents a button control.
<button>A button</button>
- or -
<input type="button" value="A button" />
Reference: button, input type=button
push button
See buttonreset button
Resets data in a form.
<button type="reset">Reset</button>
Reference: button, input type=reset
submit button
Creates a button that, when clicked, submits the form.
<button type="submit">Submit</button>
Reference: button, input type=submit
Collection/data controls
flip view
Displays a collection, one item at a time.<div data-win-control="WinJS.UI.FlipView"></div>
Reference: WinJS.UI.FlipView
grid view
A ListView that has a grid layout. See the entry for "list view" for more information.<div data-win-control="WinJS.UI.ListView" data-win-options="{layout: {type: WinJS.UI.GridLayout}}"></div>
Reference: WinJS.UI.ListView
jump viewer
See semantic zoomrepeater
Generates HTML from a set of data. Use this control to generate lists of items.<div data-win-control="WinJS.UI.Repeater"></div>
Reference: WinJS.UI.Repeater
semantic zoom
Enables the user to zoom between two views of a collection of items.<div data-win-control="WinJS.UI.SemanticZoom"> <!-- Control that provides the zoomed-in view. --> <div id="zoomedInView" data-win-control="WinJS.UI.ListView"></div> <!-- Control that provides the zoomed-out view. --> <div id="zoomedOutView" data-win-control="WinJS.UI.ListView"></div> </div>
Reference: WinJS.UI.SemanticZoom
Flyouts
content dialog
Shows critical information that requires attention or explicit action from the user and temporarily blocks interactions with other elements in the app.<div data-win-control="WinJS.UI.ContentDialog"> <!-- Content --> </div
Reference: ContentDialog
context menu
See "popup menu".flyout (Windows only)
Displays a message that requires user interaction. (Unlike a message dialog, a flyout does not create a separate window, and does not block other user interaction.)<div data-win-control="WinJS.UI.Flyout"></div>
Reference: WinJS.UI.Flyout
menu (Windows only)
Displays a menu.<div data-win-control="WinJS.UI.Menu"></div>
Reference: WinJS.UI.Menu
menu command (Windows only)
Represents a command to be displayed in a Menu object.<button data-win-control="WinJS.UI.MenuCommand" />
Reference: WinJS.UI.MenuCommand
message dialog
Displays a message that requires an immediate user response.Reference: Windows.UI.Popups.MessageDialog
popup menu
Represents a context menu.var popupMenu = new Windows.UI.Popups.PopupMenu();
Reference: Windows.UI.Popups.PopupMenu
Settings flyout (Windows only)
Provides access to app settings.<div data-win-control="WinJS.UI.SettingsFlyout"></div>
Reference: SettingsFlyout
tooltip (Windows only)
Displays a rich tooltip that can support rich content (such as images and formatted text) to show more information about something.<div data-win-control="WinJS.UI.ToolTip"></div>
Reference: WinJS.UI.Tooltip
tooltip, simple
Displays a simple, text-only tooltip for an element.<element title="tooltip text" />
Reference: title
Graphics
canvas
Provides an object that is used for drawing, rendering, and manipulating images and graphics on a document.<canvas />
Reference: canvas
svg
Defines an SVG document or document fragment that can render vector graphics.<svg xmlns="http://www.w3.org/2000/svg"></svg>
Reference: svg
Images
img
Displays an image.<img src="url" />
Reference: img
Layout controls
flex box
A CSS layout in that takes the available space into account when defining box dimensions, which enables relative sizes and positioning.<div style="display: -ms-box;"> <!-- Child elements --> </div>
Reference: display
grid
A CSS layout that defines a flexible grid area that consists of columns and rows.<div style="{display: -ms-grid}"> <!-- Child elements --> </div>
Reference: display
hub (Windows only)
Creates a hub navigation pattern consisting of sections that can be navigated to. Each section is defined by a hub section.<div data-win-control="WinJS.UI.Hub"></div>
Reference: WinJS.UI.Hub
hub section (Windows only)
Defines a section of a hub.<div data-win-control="WinJS.UI.HubSection"></div>
Reference: WinJS.UI.HubSection
item container
Defines an item that can be pressed, swiped, and dragged.<div data-win-control="WinJS.UI.ItemContainer"></div>
Reference: WinJS.UI.WinJS.UI.ItemContainer
panning scroll view
See the entry for "scroll view".pivot
Creates a tab control that displays multiple items.<div data-win-control='WinJS.UI.Pivot'></div>
Reference: WinJS.UI.Pivot
pivot item
Creates a tab within a tab control.<div data-win-control='WinJS.UI.PivotItem'></div>
Reference: WinJS.UI.PivotItem
scroll bar
A container that enables you to scroll through its contents. You add this scrolling functionality by adding the setting the overflow style of an element to scroll or auto.<div style="overflow:scroll;"> <!-- Contents --> </div>
Reference: overflow
scroll view
Displays a view of content a user can zoom in and out of, and provides additional features, such as snap points, that enhance that experience.<div style=overflow:scroll;-ms-content-zooming:zoom>> <!-- Contents to edit. --> </div>
Reference: overflow, ms-content-zooming
split view
Splits an area into two parts: a pane that can appear from an edge and a content area that fills the available space.<div data-win-control="WinJS.UI.SplitView"> </div>
Reference: SplitView
viewbox
Scales a single child element to fill the available space without resizing it. This control reacts to changes in the size of the container as well as changes in size of the child element. For example, a media query may result in a change in aspect ratio.<div data-win-control="WinJS.UI.ViewBox"></div>
Reference: WinJS.UI.ViewBox
zoomable scroll view
See the entry for "scroll view".
Media controls
audio
Specifies the sound or audio content, such as music or effects, to be played in a document.<audio> <source src="uri" type="audioType" /> </audio>
Reference: audio
media element
See the entries for "audio" and "video."media player
See the entries for "audio" and "video."video
Specifies the video content to be played in a document.<video controls="controls"> <source src="url" type="videoType" /> </video>
Reference: video
Navigation
Html control
Displays content from an HTML page.<div data-win-control="WinJS.UI.HtmlControl"></div>
Reference: WinJS.UI.HtmlControl
iframe
An inline floating frame that can display another document.<iframe src="url" />
Reference: iframe
page control
Represents a custom control or a page in an a navigation app.Reference: WinJS.UI.Pages.PageControl
split view
Splits an area into two parts: a pane that can appear from an edge and a content area that fills the available space.<div data-win-control="WinJS.UI.SplitView"> </div>
Reference: SplitView
web view
See the entry for "iframe".
Progress controls
progress bar
Displays a bar that indicates that work is in progress.
<progress />
Reference: progress
progress ring (Windows only)
Displays a ring that indicates that work is in progress.<progress class="win-ring" style="width: 20px; height: 20px" />
Reference: progress
Rating controls
rating (Windows only)
Enables the user to rate something or view its existing rating.
<div data-win-control="WinJS.UI.Rating"></div>
Reference: WinJS.UI.Rating
Selection controls
checkbox
Represents a check box that a user can select and clear.
<input type="checkbox" />
Reference: input type=checkbox
combo box
See the entry for "select".date picker (Windows only)
Sets a date.
<div data-win-control="WinJS.UI.DatePicker"></div>
Reference: DatePicker
file upload
Creates a file upload object with a text box and a browse button.<input type="file" />
Reference: input type=file
list box
See the entry for "select".list view
Displays a collection of data in a list or grid layout.<div data-win-control="WinJS.UI.ListView"></div>
Reference: WinJS.UI.ListView
radio button
A type of selection control that limits a user's selection to a single value within a set of values. To do this, you must link together each button in a set of radio buttons by assigning each button the same name.<input type="radio" id="redRadio" name="colorRadio" /><label for="redRadio">Red</label> <input type="radio" id="greedRadio" name="colorRadio" /><label for="greedRadio">Green</label> <input type="radio" id="blueRadio" name="colorRadio" /><label for="blueRadio">Blue</label>
Reference: input type=radio
range
See the entry for "slider".search box (Windows only)
Enables the user to perform search queries and select suggestions.<div data-win-control="WinJS.UI.SearchBox"></div>
Reference: WinJS.UI.SearchBox
select
Represents a list box, combo box, or drop-down list.<select> <option>Apple</option> <option>Banana</option> <option>Grape</option> <option>Orange</option> <option>Pear</option> <option>Watermelon</option> </select>
Reference: select
slider
Provides a range slider for selecting a numeric value.<input type="range" />
Reference: input type=range
time picker (Windows only)
Lets the user specify a time.
<div data-win-control="WinJS.UI.TimePicker"></div>
Reference: WinJS.UI.TimePicker
toggle switch
Represents a switch that can be toggled between two states.<div data-win-control="WinJS.UI.ToggleSwitch"></div>
Reference: ToggleSwitch
Text controls
email input box
A single line entry control that accepts one or more email addresses.<input type="email" />
Reference: input type=email
multi-line text box
See the entry for "textarea".number input box
A single line entry control that accepts a numeric value.<input type="number" />
Reference: input type=number
password input box
A single-line text entry control similar to the text input control, except that text is not displayed as the user enters it.<input type="password" />
Reference: input type=password
rich edit box/rich text box
A control that provides text input functionality that resembles a text input box but can handle content that contains child elements. To create a rich text box, you set the contentEditable property of the elements that you want to edit.<div contentEditable="true"> <!-- Elements to edit. --> </div>
Reference: contentEditable
single-line text box
See the entry for "text box".text box
A single-line text entry control.<input type="text" />
Reference: input type=text
text area
A multi-line text entry control.<textarea></textarea>
Reference: textarea
URL input box
A single-line text entry control that accepts URLs.<input type="url" />
Reference: input type=url
User Help
label
Specifies a label for another element on the page.<label for="otherControl">Label text</label> <input type="text" id="otherControl" />
Reference: label
tooltip (Windows only)
Displays a rich tooltip that can support rich content (such as images and formatted text) to show more information about something.<div data-win-control="WinJS.UI.ToolTip"></div>
Reference: WinJS.UI.Tooltip
tooltip, simple
Displays a simple, text-only tooltip for an element.<element title="tooltip text" />
Reference: title