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


Автор: LLlaMaH 15.1.2008, 13:34
Допустим у меня есть файл иконки в котором записано несколько иконок 32*32 16*16 24*24
я их храню как Embedded Resource потом в runtime я их извлекаю потоком и помещаю в переменную типа Icon
далее допустим мне ее нужно нарисовать на форме
this.CreateGraphix().DrawIcon(IconName,100,100);
и вот тут появляется проблема: на форме рисуется иконка которая находится первой в списке иконок внутри файла.... 
как мне добраться до иконки другого размера. например первая у меня лежит 16*16 а поседняя 32*32... вот ее мне и нужно нарисовать....
как это сделать?... или хотябы подскажите куда копать... 

Автор: stab 15.1.2008, 15:18
Graphics.DrawIcon(Icon, Rectangle) должно помочь.

Автор: LLlaMaH 15.1.2008, 16:43
нет...это с масштабирует иконку...
что бы не быть голословным приложу код:

Код

Icon ic = new Icon("aaa.ico");
            this.CreateGraphics().DrawIcon(ic, new Rectangle(16, 16, 16, 16));
            this.CreateGraphics().DrawIcon(ic, new Rectangle(116, 116, 24, 24));
            this.CreateGraphics().DrawIcon(ic, new Rectangle(116, 16, 32, 32));
            this.CreateGraphics().DrawIcon(ic, new Rectangle(216, 16, 48, 48));



эта гадость выводит по умолчанию иконку 32*32... хотя они в файле лежат 
16,24,32,48

а в остальных вариантах масштабирует....

Автор: stab 15.1.2008, 16:59
Код

Icon icon = new Icon(originalIcon, new Size(32, 32));
e.Graphics.DrawIcon(icon, 10, 10);

Автор: LLlaMaH 16.1.2008, 08:20
спасибо огромное...помогло....

Автор: LLlaMaH 22.1.2008, 15:09
Еще вопрос в продолжении темы.
А если в файле 2 или больше иконки одного размера
и мне нужно получить одну из них.... 
ну  к примеру в файле иконки 3 иконки  разрешением 32*32
как мне добраться до третьей?

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