У меня есть файл ico, который содержит 48x48 и 256x256 Vista PNG версии (а также 32x32 и 16x16 версии). я хочу нарисовать иконку, используя соответствующую версию внутреннего размера.
я пробовал:
Icon ico = Properties.Resources.TestIcon;
e.Graphics.DrawIcon(ico, new Rectangle(0, 0, 48, 48));
e.Graphics.DrawIcon(ico, new Rectangle(48, 0, 256, 256));
Но они рисуют версию 32x32, увеличенную до 48x48 и 256x256 соответственно.
я пробовал:
Icon ico = Properties.Resources.TestIcon;
e.Graphics.DrawIconUnstretched(ico, new Rectangle(0, 0, 48, 48));
e.Graphics.DrawIconUnstretched(ico, new Rectangle(48 0, 256, 256));
Но те рисуют 32x32 версию без натяжения.
я пробовал:
Icon ico = Properties.Resources.TestIcon;
e.Graphics.DrawImage(ico.ToBitmap(), new Rectangle(0, 0, 48, 48));
e.Graphics.DrawImage(ico.ToBitmap(), new Rectangle(48, 0, 256, 256));
Но те рисуют растянутую версию значка 32x32.
Как сделать так, чтобы значок нарисовал себя, используя соответствующий размер?
Кроме того, я хочу рисовать, используя версию 16x16. я пробовал:
Icon ico = Properties.Resources.TestIcon;
e.Graphics.DrawIcon(ico, new Rectangle(0, 0, 16, 16));
e.Graphics.DrawIconUnstretched(ico, new Rectangle(24, 0, 16, 16));
e.Graphics.DrawImage(ico.ToBitmap(), new Rectangle(48, 0, 16, 16));
Но все они используют уменьшенную версию 32x32, за исключением вызова Unstretched
, который обрезает его до 16x16.
Как сделать так, чтобы значок нарисовал себя, используя соответствующий размер?
Следуя предложению schnaader о создании копии значка нужного размера, он не работает для размера 256x256. то есть следующее не работает (используется уменьшенная версия значка 48x48):
e.Graphics.DrawIcon(
new Icon(ico, new Size(256, 256)),
new Rectangle(0, 0, 256, 256));
Пока работают следующие два:
e.Graphics.DrawIcon(
new Icon(ico, new Size(16, 16)),
new Rectangle(0, 0, 16, 16));
e.Graphics.DrawIcon(
new Icon(ico, new Size(48, 48)),
new Rectangle(0, 0, 48, 48));