Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Извлечение иконки стороннего приложения


Автор: proxeter 9.1.2009, 20:27
Всем добрый вечер smile

Помогите, пожалуйста, разобраться в моем вопросе.

Необходимо, чтобы при перемещении стороннего приложения (файла) на WPF форму, извлекалась его картинка (иконка) и выводилась например в image (может есть другой вариант?).

Заранее спасибо за ответ.
Если не понятен вопрос - пишите, в wpf я еще совсем зеленый smile

Автор: proxeter 9.1.2009, 21:17
Решил проблему таким образом:

IconsHelper.cs

Код

#region Using Statements
using System.IO;
using System.Drawing;
using System.Windows.Media.Imaging;
using IconImage = System.Drawing.Icon;
#endregion

namespace Helpers
{
    public class IconsHelper
    {
        #region GetApplicationIcon
        public BitmapFrame GetApplicationIcon(string filePath)
        {
            IconImage ico = IconImage.ExtractAssociatedIcon(filePath);
            Bitmap bmp = ico.ToBitmap();
            MemoryStream strm = new MemoryStream();

            bmp.Save(strm, System.Drawing.Imaging.ImageFormat.Png);
            strm.Seek(0, SeekOrigin.Begin);

            PngBitmapDecoder pbd = new PngBitmapDecoder(strm, BitmapCreateOptions.None, BitmapCacheOption.Default);

            return pbd.Frames[0];
        }
        #endregion

        #region Constructor
        public IconsHelper()
        {

        }
        #endregion

        
    }
}


MainWindow.xaml.cs

Код

...
private IconsHelper iconsHelper;

public MainWindow()
{
...
iconsHelper = new IconsHelper();
DispayImage.Source = iconsHelper.GetApplicationIcon(@"C:\WINDOWS\system32\notepad.exe");
...
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)