Icons for Windows apps

Example of a cloud icon on a grid.

Icons provide a visual shorthand for an action, concept, or product. By compressing meaning into a symbolic image, icons can cross language barriers and help conserve a valuable resource: screen space.

Good icons harmonize with typography and with the rest of the design language. They don't mix metaphors, and they communicate only what's needed, as speedily and simply as possible.

Icons can appear within apps and outside them:

Icons inside the app

Screenshot of icons in a music app. Inside your app, you use icons to represent an action, such as copying text or going to the settings page.

Icons outside the app

Screenshot of the Windows Start menu with app icons. Outside your app, Windows uses an icon to represent the app on the Start menu and on the taskbar. If the user chooses to pin your app to the Start menu, your app's start tile can feature the app's icon. The app's icon appears on the title bar, and you can choose to create a splash screen with your app's logo.

This article describes icons within your app. To learn about icons outside your app (app icons), see the Iconography in Windows article.

Know when to use icons

Icons can save space, but when should you use them?

Screenshot of a green bar that has a green check mark and the word Do. Screenshot that shows Cut, Copy, Paste, and Save icons.

Use an icon for actions, like cut, copy, paste, and save, or for items on a navigation menu.

Screenshot that shows a red bar that has a red X and the word Don't. Screenshot that shows the Education, Touch, and Calendar icons.

Use an icon if one already exists for the concept that you want to represent. (To see whether an icon exists, check the Segoe icon list.)

Screenshot of a green bar that has a green check mark and the word Do. Screenshot of a simple and familiar shopping cart icon.

Use an icon if it's easy for the user to understand what the icon means and it's simple enough to be clear at small sizes.

Screenshot of a red bar that has a red X and the word Don't. Screenshot of a complex and unfamiliar shopping cart icon.

Don't use an icon if its meaning isn't clear, or if making it clear requires a complex shape.

Use the right type of icon

There are many ways to create an icon. You can use a symbol font like Segoe MDL2 Assets. You can create your own vector-based image. You can even use a bitmap image, although we don't recommend it. Here's a summary of the ways that you can add an icon to your app.

Predefined icon

Microsoft provides more than 1,000 icons in the form of the Segoe MDL2 Assets font. It might not be intuitive to get an icon from a font, but Windows font display technology means these icons will look crisp and sharp on any display, at any resolution, and at any size. For instructions, see Segoe MDL2 Assets icons.

Screenshot that shows a large group of predefined Segoe icons.

Font

You don't have to use the Segoe MDL2 Assets font. You can use any font that the user has installed on their system, such as Wingdings or Webdings.

Screenshot of a large group of Wingdings icons.

SVG file

Scalable Vector Graphics (SVG) resources are ideal for icons, because they always look sharp at any size or resolution. Most drawing applications can export to SVG. For instructions, see SVGImageSource.

Animation of expanding and shrinking an SVG shopping cart icon.

Geometry object

Like SVG files, geometries are a vector-based resource, so they always look sharp. However, creating a geometry is complicated because you have to individually specify each point and curve. It's a good choice only if you need to modify the icon while your app is running (to animate it, for example). For instructions, see Move and draw commands for geometries.

Screenshot that shows the creation of a geometry object.

Bitmap image

You can use a bitmap image (such as PNG, GIF, or JPEG), although we don't recommend it.

Bitmap images are created at a specific size, so they have to be scaled up or down depending on how large you want the icon to be and the resolution of the screen. When the image is scaled down (shrunk), it can appear blurry. When it's scaled up, it can appear blocky and pixelated. If you have to use a bitmap image, we recommend using a PNG or GIF over a JPEG.

Screenshot of a red bar that has an X and the word Don't. Screenshot of a pixelated bitmap icon of a shopping cart.

Make an icon do something

After you have an icon, the next step is to make it do something by associating it with a command or a navigation action. The best way is to add the icon to a button or a command bar.

Screenshot that shows a command bar with Share, Edit, and Delete icons, along with an ellipsis for an overflow menu.

You can also animate an icon to draw attention to a UI component, such as the next button in a tutorial, or to reflect the action that's associated with the icon in an entertaining and interesting way. For more information, see AnimatedIcon.

Create an icon button

You can put an icon on a standard button. Because you can use buttons in a wide variety of places, using an icon in this way gives you a little more flexibility for where your action icon appears.

Here's one way to add an icon to a button:

Step 1
Set the button's font family to Segoe MDL2 Assets and its content property to the Unicode value of the glyph that you want to use:

Screenshot of an icon for a play button.

<Button FontFamily="Segoe MDL2 Assets" Content="&#xE102;" />

Step 2
Use one of the icon element objects: BitmapIcon, FontIcon, PathIcon, ImageIcon, or SymbolIcon. This technique gives you more types of icons to choose from. It also enables you to combine icons and other types of content, such as text, if you want.

Screenshot of an icon for a play button with the text "Play the movie".

<Button>
    <StackPanel>
        <SymbolIcon Symbol="Play" />
        <TextBlock>Play the movie</TextBlock>
    </StackPanel>
</Button>

Create a series of icons on a command bar

When you have a series of commands that go together, such as cut/copy/paste or a set of drawing commands for a photo-editing program, put them together on a command bar. A command bar takes one or more app bar buttons or app bar toggle buttons, each of which represents an action. Each button has an Icon property that you use to control which icon it displays. There are a variety of ways to specify the icon.

Example of a command bar with icons.

The easiest way is to use the list of predefined icons. Simply specify the icon name, such as Back or Stop, and the system will draw it:

<CommandBar>
    <AppBarToggleButton Icon="Shuffle" Label="Shuffle" Click="AppBarButton_Click" />
    <AppBarToggleButton Icon="RepeatAll" Label="Repeat" Click="AppBarButton_Click"/>
    <AppBarSeparator/>
    <AppBarButton Icon="Back" Label="Back" Click="AppBarButton_Click"/>
    <AppBarButton Icon="Stop" Label="Stop" Click="AppBarButton_Click"/>
    <AppBarButton Icon="Play" Label="Play" Click="AppBarButton_Click"/>
    <AppBarButton Icon="Forward" Label="Forward" Click="AppBarButton_Click"/>
</CommandBar>

For the complete list of icon names, see the Symbol enumeration reference.

There are other ways to provide icons for a button on a command bar:

  • FontIcon: The icon is based on a glyph from the specified font family.
  • BitmapIcon: The icon is based on a bitmap image file with the specified URI.
  • PathIcon: The icon is based on Path data.
  • ImageIcon: The icon is based on an image file type that the Image class supports.

To learn more about command bars, see the Command bar article.