从文件扩展名中获取大图标

| 有好几处地方都在谈论如何从文件扩展名中获取图标,例如这个和另一个。经过几个小时的这类项目的尝试,我设法建立了类似的东西:
private void addButton_Click(object sender, System.EventArgs e)
    {           
        System.Drawing.Icon temp = IconReader.GetFileIcon(\".cs\", IconReader.IconSize.Large, false);
        pictureBox1.Image = temp.ToBitmap();
    }
该按钮的执行使我得到: 但我实际上是在尝试获取大图标。注意窗口上的图标如何更大: 我如何获得该图标而不是较小的图标。我花了很多时间来更改其他程序。此外,我想使其与wpf一起使用,并且大多数示例都与Windows窗体一起使用。如果能得到一个如何提取文件图标而不是修改整个项目的示例,我将不胜感激。如果不可能,那将仍然非常有帮助,我将不胜感激。只是我不是一个程序员那么好,花了很多时间修改其他示例。     
已邀请:
        这是一个解决方案http://www.codeproject.com/KB/WPF/filetoiconconverter.aspx     
        您引用的代码仅使用2种大小:
public const uint SHGFI_LARGEICON = 0x000000000;     // get large icon
public const uint SHGFI_SMALLICON = 0x000000001;     // get small icon
要获得extra_large大小,您需要添加自己的定义(并为调用函数添加另一个枚举):
public const uint SHGFI_EXTRALARGEICON = 0x000000002;     // get extra large icon
或者,如果您只想快速修复,请在原始大画质中将
0x000000000
替换为
0x000000002
。 这是所有图标的大小: http://msdn.microsoft.com/zh-cn/library/windows/desktop/bb762185%28v=vs.85%29.aspx     
        您不能使ShGetFileInfo返回ExtraLarge和Jumbo图标。 代替, 1)使用SysIconIndex(0x000004000)标志调用ShGetFileInfo 2)使用ShGetImageList获取具有适当大小的系统映像列表 3)使用ImageList_GetIcon和SHFILEINFO中的.iIcon值获取HICON。     

要回复问题请先登录注册