Edit

Share via


Window.Icon Property

Definition

Gets or sets a window's icon.

public:
 property System::Windows::Media::ImageSource ^ Icon { System::Windows::Media::ImageSource ^ get(); void set(System::Windows::Media::ImageSource ^ value); };
public System.Windows.Media.ImageSource Icon { get; [System.Security.SecurityCritical] set; }
public System.Windows.Media.ImageSource Icon { get; set; }
[<set: System.Security.SecurityCritical>]
member this.Icon : System.Windows.Media.ImageSource with get, set
member this.Icon : System.Windows.Media.ImageSource with get, set
Public Property Icon As ImageSource

Property Value

An ImageSource object that represents the icon.

Attributes

Examples

The following example shows how to set a window icon.

<Window
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="SDKSample.MainWindow"
    Icon="WPFIcon1.ico">
</Window>
// Set an icon using code
Uri iconUri = new Uri("pack://application:,,,/WPFIcon2.ico", UriKind.RelativeOrAbsolute);
this.Icon = BitmapFrame.Create(iconUri);
' Set an icon using code
Dim iconUri As New Uri("pack://application:,,,/WPFIcon2.ico", UriKind.RelativeOrAbsolute)
Me.Icon = BitmapFrame.Create(iconUri)

Remarks

Windows Presentation Foundation (WPF) standalone applications have two types of icons:

  • One assembly icon, which is specified by using the <ApplicationIcon> property in the application's project build file. This icon is used as the desktop icon for an assembly.

    Note

    When debugging in Visual Studio, your icon may not appear due to the hosting process. If you run the executable, the icon will appear. For more information, see Hosting Process (vshost.exe).

  • One icon per window that is specified by setting Icon. For each window, this icon is used in its title bar, its task bar button, and in its ALT-TAB application selection list entry.

A WPF window always displays an icon. When one is not provided by setting Icon, WPF chooses an icon to display based on the following rules:

  1. Use the assembly icon, if specified.

  2. If the assembly icon is not specified, use the default Microsoft Windows icon.

If you use Icon to specify a custom window icon, you can restore the default application icon by setting Icon to null.

A single icon can be used in a variety of ways in Windows, including being shown in the title bar of a window, the task bar for a window, the ALT+TAB file selection list. Each of these shows the icon using a different size; a 16x16 pixel icon is displayed in the title bar of a window and in the task bar, while a 32x32 pixel icon is displayed in the ALT+TAB file selection list. Some applications, like Microsoft Windows Explorer, provide a View menu that allows you to choose the size of the icon you'd like to view.

To cater to the various display sizes, an icon file is composed of one or more actual icons where each one represents a version of the icon that targets a specific size and color depth. For example, one icon may only have a single 16x16 pixel icon with 16 colors, while another may contain 16x16 pixel and 32x32 pixel icons with both 16 colors and 256 colors.

If icons for all possible sizes and color depths exist within an icon file, Window will use the appropriate icon. If an icon file contains only a subset of all the possible icons, Window uses the next most appropriate icon in order of decreasing sizes and color depth.

The result is that an icon will always be used by Window, although the icon used may not target the required size and color depth. For example, a 16x16 pixel icon with 16 colors may be used for display as a 32x32 pixel icon with 256 colors. This can cause undesirable visual effects, such as pixilation, but may be avoided by creating icons for all targeted sizes and color depths.

Note

You cannot set or get this property when a window is hosted in a browser.

Dependency Property Information

Identifier field IconProperty
Metadata properties set to true None

Applies to