C# Note15:设置Window图标的正确方式

Windows Presentation Foundation(WPF)独立应用程序有两种类型的图标:

  • 一个程序集(assembly) 图标,通过在应用程序的项目构建文件中使用<ApplicationIcon>属性指定。该图标用作装配体(assembly)的桌面图标。

 

Note:在Visual Studio中调试时,由于托管过程,您的图标可能不会显示。如果运行该可执行文件,该图标将会出现。可参阅托管进程(vshost.exe)。  

 

  • 通过设置Icon给每个窗口指定一个图标。 对于每个窗口,在其标题栏,其任务栏按钮和其ALT-TAB应用程序选择列表条目中使用此图标。

WPF窗口总是会显示一个图标。 当在设置Icon时,不提供某个图标,WPF会根据以下规则选择要显示的图标:

  • 如果指定,请使用装配图标。
  • 如果未指定装配体图标,请使用默认的Microsoft Windows图标。

如果使用Icon指定自定义窗口图标,可以将Icon设置为null来还原默认应用程序图标。


在Windows中可以以多种方式使用单个图标,包括在窗口的标题栏中显示窗口的任务栏,ALT + TAB文件选择列表。每个都使用不同大小的图标显示;在窗口的标题栏和任务栏中显示一个16x16像素的图标,而在ALT + TAB文件选择列表中显示一个32x32像素的图标。某些应用程序(如Microsoft Windows资源管理器)提供了一个“视图”菜单,可以选择要查看的图标的大小。

 

下面来看一下在WPF Window中设置窗口图标的两种方式:

(1)直接设置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>

(2)通过代码设置的方式(/WPFIcon2.ico 为图标的相对目录位置)  

Uri iconUri = new Uri("pack://application:,,,/WPFIcon2.ico", UriKind.RelativeOrAbsolute);
this.Icon = BitmapFrame.Create(iconUri);  

比如:(不管是WinFormWindow和WPF Window皆是如此)

 

参考文档:https://msdn.microsoft.com/en-us/library/system.windows.window.icon.aspx

posted @ 2017-08-02 18:37  小金乌会发光-Z&M  阅读(2178)  评论(0编辑  收藏  举报