Windows Store apps provide an extensive library of XAML controls that support UI development. Some of these controls have a visual representation; others function as the containers for other controls or content, such as images and media. You can see many of the Windows UI controls by downloading the XAML essential controls sample.
Here is a list of the common controls by function for Windows Store apps using Extensible Application Markup Language (XAML).
Roadmap: How does this topic relate to others? See:
Appbars and commands
- App bar
-
A toolbar for displaying application-specific commands.
<Page.BottomAppBar> <AppBar x:Name="bottomAppBar" Padding="10,0,10,0"> <Grid> <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> <Button Style="{StaticResource EditAppBarButtonStyle}" Click="Button_Click"/> <Button Style="{StaticResource RemoveAppBarButtonStyle}" Click="Button_Click"/> <Button Style="{StaticResource AddAppBarButtonStyle}" Click="Button_Click"/> </StackPanel> <StackPanel Orientation="Horizontal" HorizontalAlignment="Right"> <Button Style="{StaticResource RefreshAppBarButtonStyle}" Click="Button_Click"/> <Button Style="{StaticResource HelpAppBarButtonStyle}" Click="Button_Click"/> </StackPanel> </Grid> </AppBar> </Page.BottomAppBar>
Reference: AppBar
Buttons
- Button
-
A control that responds to user input and raises a Click event.
<Button x:Name="button1" Content="Button" Click="Button_Click" />
Reference: Button
- Hyperlink
-
See Hyperlink button.
- Hyperlink button
-
A button that appears as marked up text, typically used inline within text blocks.
<HyperlinkButton Content="www.microsoft.com" NavigateUri="http://www.microsoft.com"/>
Reference: HyperlinkButton
- Repeat button
-
A button that raises its Click event repeatedly from the time it's pressed until it's released.
<RepeatButton x:Name="repeatButton1" Content="Repeat Button" Click="RepeatButton_Click" />
Reference: RepeatButton
- Push button
-
See Button.
Collection/data controls
- Flip view
-
A control that presents a collection of items that the user can flip through, one item at a time.
<FlipView x:Name="flipView1" SelectionChanged="FlipView_SelectionChanged"> <Image Source="Assets/Logo.png" /> <Image Source="Assets/SplashScreen.png" /> <Image Source="Assets/SmallLogo.png" /> </FlipView>
Reference: FlipView
- Grid view
-
A control that presents a collection of items in rows and columns that can scroll horizontally.
<GridView x:Name="gridView1" SelectionChanged="GridView_SelectionChanged"> <x:String>Item 1</x:String> <x:String>Item 2</x:String> </GridView>
Reference: GridView
Adding ListView and GridView controls
XAML ListView and GridView essentials sample
- Items control
-
A control that presents a collection of items in a UI specified by a data template.
<ItemsControl/>
Reference: ItemsControl
- List view
-
A control that presents a collection of items in a list that can scroll vertically.
<ListView x:Name="listView1" SelectionChanged="ListView_SelectionChanged"> <x:String>Item 1</x:String> <x:String>Item 2</x:String> </ListView>
Reference: ListView
Adding ListView and GridView controls
- Semantic zoom
-
A container control that lets the user zoom between two views of a collection of items.
<SemanticZoom> <ZoomedInView> <GridView></GridView> </ZoomedInView> <ZoomedOutView> <GridView></GridView> </ZoomedOutView> </SemanticZoom>
Reference: SemanticZoom
Flyouts
- Context menu
-
See Popup menu.
- Popup menu
-
Custom menu presenting commands that you specify.
Reference: PopupMenu
- Tooltip
-
A pop-up window that displays information for an element.
<Button Content="Button" Click="Button_Click" ToolTipService.ToolTip="Click to perform action" />
Reference: ToolTip, ToolTipService
Images
- Image
-
A control that presents an image.
<Image Source="Assets/Logo.png" />
Reference: Image
Graphics
- Shapes
-
Various retained mode graphical objects that can be presented like ellipses, rectangles, lines, Bezier paths, etc.

<Ellipse/> <Path/> <Rectangle/>
Reference: Shapes
Layout controls
- Border
-
A container control that draws a border, background, or both, around another object.
<Border BorderBrush="Gray" BorderThickness="4" Height="108" Width="64"> <StackPanel> <Rectangle Fill="Yellow"/> <Rectangle Fill="Green"/> </StackPanel> </Border>
Reference: Border
- Canvas
-
A layout panel that supports absolute positioning of child elements relative to the top left corner of the canvas.
<Canvas Width="120" Height="120"> <Rectangle Fill="Red"/> <Rectangle Fill="Blue" Canvas.Left="20" Canvas.Top="20"/> <Rectangle Fill="Green" Canvas.Left="40" Canvas.Top="40"/> <Rectangle Fill="Yellow" Canvas.Left="60" Canvas.Top="60"/> </Canvas>
Reference: Canvas
- Flex box
-
See Stack panel.
- Grid
-
A layout panel that supports arranging child elements in rows and columns.
<Grid> <Grid.RowDefinitions> <RowDefinition Height="50"/> <RowDefinition Height="50"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="50"/> <ColumnDefinition Width="50"/> </Grid.ColumnDefinitions> <Rectangle Fill="Red"/> <Rectangle Fill="Blue" Grid.Row="1"/> <Rectangle Fill="Green" Grid.Column="1"/> <Rectangle Fill="Yellow" Grid.Row="1" Grid.Column="1"/> </Grid>
Reference: Grid
- Panning scroll viewer
-
See Scroll viewer.
- Scroll bar
-
A control that provides a scroll bar that has a sliding Thumb whose position corresponds to a value.
<ScrollBar/>
Reference: ScrollBar
- Scroll viewer
-
A container control that lets the user pan and zoom its content.
<ScrollViewer ZoomMode="Enabled" MaxZoomFactor="10" HorizontalScrollMode="Enabled" HorizontalScrollBarVisibility="Visible" Height="200" Width="200"> <Image Source="Assets/Logo.png" Height="400" Width="400"/> </ScrollViewer>
Reference: ScrollViewer
- Stack panel
-
A layout panel that arranges child elements into a single line that can be oriented horizontally or vertically.
<StackPanel> <Rectangle Fill="Red"/> <Rectangle Fill="Blue"/> <Rectangle Fill="Green"/> <Rectangle Fill="Yellow"/> </StackPanel>
Reference: StackPanel
- VariableSizedWrapGrid
-
A layout panel that supports arranging child elements in rows and columns. Each child element can span multiple rows and columns.
<VariableSizedWrapGrid MaximumRowsOrColumns="3" ItemHeight="44" ItemWidth="44"> <Rectangle Fill="Red"/> <Rectangle Fill="Blue" Height="80" VariableSizedWrapGrid.RowSpan="2"/> <Rectangle Fill="Green" Width="80" VariableSizedWrapGrid.ColumnSpan="2"/> <Rectangle Fill="Yellow" Height="80" Width="80" VariableSizedWrapGrid.RowSpan="2" VariableSizedWrapGrid.ColumnSpan="2"/> </VariableSizedWrapGrid>
Reference: VariableSizedWrapGrid
- Viewbox
-
A container control that scales its content to a specified size.
<Viewbox MaxWidth="25" MaxHeight="25"> <Image Source="Assets/Logo.png"/> </Viewbox> <Viewbox MaxWidth="75" MaxHeight="75"> <Image Source="Assets/Logo.png"/> </Viewbox> <Viewbox MaxWidth="150" MaxHeight="150"> <Image Source="Assets/Logo.png"/> </Viewbox>
Reference: Viewbox
- Zooming scroll viewer
-
See Scroll viewer.
Media controls
- Audio
-
See Media element.
- Media element
-
A control that plays audio and video content.
<MediaElement/>
Reference: MediaElement
- Video
-
See Media element.
Navigation
- Web view
-
A container control that hosts web content.
<WebView x:Name="webView1" Source="http://dev.windows.com" Height="400" Width="800" />
<Rectangle Height="400" Width="800"> <Rectangle.Fill> <WebViewBrush SourceName="webView1"/> </Rectangle.Fill> </Rectangle>
Reference: WebView, WebViewBrush
Progress controls
- Progress bar
-
A control that indicates progress by displaying a bar.

A progress bar that shows a specific value.
<ProgressBar x:Name="progressBar1" Value="50" Width="100"/>

A progress bar that shows indeterminate progress.
<ProgressBar x:Name="indeterminateProgressBar1" IsIndeterminate="True" Width="100"/>
Reference: ProgressBar
- Progress ring
-
A control that indicates indeterminate progress by displaying a ring.
<ProgressRing x:Name="progressRing1" IsActive="True"/>
Reference: ProgressRing
Text controls
- Multi-line text box
-
See Text box.
- Password box
-
A control for entering passwords.
<PasswordBox x:Name="passwordBox1" IsPasswordRevealButtonEnabled="True" PasswordChanged="PasswordBox_PasswordChanged" />
Reference: PasswordBox
- Single-line text box
-
See Text box.
- Static text/paragraph
-
See Text block.
- Text block
-
A control that displays text.
<TextBlock x:Name="textBlock1" Text="I am a TextBlock" />
Reference: TextBlock, RichTextBlock
- Text box
-
A single-line or multi-line plain text field.
<TextBox x:Name="textBox1" Text="I am a TextBox" TextChanged="TextBox_TextChanged" />
Reference: TextBox
Selection controls
- Check box
-
A control that a user can select or clear.
<CheckBox x:Name="checkbox1" Content="CheckBox" Checked="CheckBox_Checked"/>
Reference: CheckBox
- Combo box
-
A drop-down list of items a user can select from.
<ComboBox x:Name="comboBox1" SelectionChanged="ComboBox_SelectionChanged" Width="100"> <x:String>Item 1</x:String> <x:String>Item 2</x:String> <x:String>Item 3</x:String> </ComboBox>
Reference: ComboBox
- List box
-
A control that presents an inline list of items that the user can select from.
<ListBox x:Name="listBox1" SelectionChanged="ListBox_SelectionChanged" Width="100"> <x:String>Item 1</x:String> <x:String>Item 2</x:String> <x:String>Item 3</x:String> </ListBox>
Reference: ListBox
- Radio button
-
A control that allows a user to select a single option from a group of options. When radio buttons are grouped together they are mutually exclusive.
<RadioButton x:Name="radioButton1" Content="RadioButton 1" GroupName="Group1" Checked="RadioButton_Checked"/> <RadioButton x:Name="radioButton2" Content="RadioButton 2" GroupName="Group1" Checked="RadioButton_Checked" IsChecked="True"/> <RadioButton x:Name="radioButton3" Content="RadioButton 3" GroupName="Group1" Checked="RadioButton_Checked"/>
Reference: RadioButton
- Slider
-
A control that lets the user select from a range of values by moving a Thumb control along a track.
<Slider x:Name="slider1" Width="100" ValueChanged="Slider_ValueChanged" />
Reference: Slider
- Toggle button
-
A button that can be toggled between 2 states.
<ToggleButton x:Name="toggleButton1" Content="Button" Checked="ToggleButton_Checked"/>
Reference: ToggleButton
- Toggle switch
-
A switch that can be toggled between 2 states.
<ToggleSwitch x:Name="toggleSwitch1" Header="ToggleSwitch" OnContent="On" OffContent="Off" Toggled="ToggleSwitch_Toggled"/>
Reference: ToggleSwitch
Related topics
Build date: 11/29/2012