Windows Forms .NET 2.0: Как нарисовать значок PNG?

Замечания: ВопросИспользование 256 x 256 иконок Vista в приложении имеет дело с использованием значка "Vista" в качестве значка приложения. Этот вопрос касается ручного рисования иконки Vista.

Замечания: ВопросWinForms .NET 2.0: Как нарисовать иконку нужного размера? занимается рисованием иконки Vista, загруженной из файла. Этот вопрос касается рисования значка Vista, загруженного из .resource.

Я включил значок в свой проект Visual Studio, который имеет различные форматы:

16x1632х3248x48256x256 (сжатый PNG)

Теперь хочу нарисовать версию 256x256. Ни одна из следующих вещей, которые я пробовал работать.

На следующем рисунке показан формат 32x32, растянутый до 256x256:

Icon ico = Properties.Resources.TestIconThatHasA256PNGFormat;
e.Graphics.DrawIcon(ico, new Rectangle(0, 0, 256, 256));

Следующее рисует формат 32x32 без растяжения:

Icon ico = Properties.Resources.TestIconThatHasA256PNGFormat;
e.Graphics.DrawIconUnstretched(ico, new Rectangle(0, 0, 256, 256));

На следующем рисунке показан формат 32x32, растянутый до 256x256:

Icon ico = Properties.Resources.TestIconThatHasA256PNGFormat;
e.Graphics.DrawImage(ico.ToBitmap(), new Rectangle(0, 0, 256, 256));

На следующем рисунке показан формат 48x48, растянутый до 256x256:

Icon ico = Properties.Resources.TestIconThatHasA256PNGFormat;
e.Graphics.DrawIcon(
      new Icon(ico, new Size(256, 256)),
      new Rectangle(0, 0, 256, 256));

Как нарисовать значок формата 256x256?

Заметки:

Значок не приходит из файла, поэтомуPInvoking LoadImage () не поможет.

Значок не является значком, связанным с файлом, поэтомуPInvoking SHGetFileInfo ()будут нет помощи. Не будетиспользуя Icon.ExtractAssociatedIcon.

Я также не пытаюсь создавать иконки с форматом 256x256 во время выполнения, поэтомубиблиотеки, предназначенные для этого не поможет

2: ВопросWinForms .NET 2.0: Как нарисовать иконку нужного размера?

Ответы на вопрос(3)

Ваш ответ на вопрос