Icons for Windows apps

Icons header image

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 an extremely valuable resource: screen space.

Icons can appear in apps—and outside them:

Icons inside the app

icons inside the app Inside your app, you use icons to represent an action, such as copying text or navigating to the settings page.

Icons outside the app

icons outside the app Outside your app, Windows uses an icon to represent your app in the start menu and in the taskbar. If the user chooses to pin your app to the start menu, your app's start tile can feature your app's icon. Your app's icon appears in 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 app and tile icons article.

When to use icons

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

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

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

First image of 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 you want to represent. (To see whether an icon exists, check the Segoe icon list.)

Second image 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.

Second image 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.

Using the right type of icon

There are many ways to create an icon. You can use a symbol font like Segoe MDL2 Assets. You could 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 different ways you can add an icon to your app.

Use a predefined icon.

Microsoft provides over 1000 icons in the form of the Segoe MDL2 Assets font. It might not be intuitive to get an icon from a font, but our 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 icons.

pre-defined icon image

Use a font.

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

wingdings image

Use a Scalable Vector Graphics (SVG) file.

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.

SVG image

Use Geometry objects.

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 really only a good choice 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.

Geometry objects image

You can also 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.

don't Bitmap image

Make the icon do something

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

Command bar image

You can also animate an icon to draw attention to a UI component, such as the next button in a tutorial, or simply reflect the action associated with the icon in an entertaining and interesting way. See AnimatedIcon.

Create an icon button

You can put an icon in a standard button. Since you can use buttons in a wider variet of places, this gives you a little more flexibility for where your action icon appears.

The are a few ways 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 you want to use:

Create an icon button step 1

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

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

Create an icon button step 2

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

Create a series of icons in 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 in 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 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 we provide—simply specify the icon name, such as "Back" or "Stop", and the system will draw it:

    <AppBarToggleButton Icon="Shuffle" Label="Shuffle" Click="AppBarButton_Click" />
    <AppBarToggleButton Icon="RepeatAll" Label="Repeat" Click="AppBarButton_Click"/>
    <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"/>

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

There are other ways to provide icons for a button in 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 supported by the Image class.

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