Примечание. Вопрос Использование значка 256 x 256 Vista в приложении использует значок "Vista" в качестве значка приложения. Этот вопрос касается ручной покраски значка Vista.
Примечание: Вопрос WinForms.NET 2.0: Как нарисовать значок нужного размера? имеет дело с рисованием значка Vista, загруженного из файла, Этот вопрос касается рисования значка Vista, загружаемого из .resource.
Я включил значок в мой проект Visual Studio, который имеет различные форматы:
- 16х16
- 32х32
- 48х48
- 256x256 (сжатый 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: Как нарисовать значок соответствующего размера?