相关疑难解决方法(0)

Windows窗体.NET 2.0:如何绘制PNG图标?

注意:问题在应用程序中使用256 x 256 Vista图标处理使用"Vista"图标作为应用程序的图标.这个问题涉及手动绘制Vista图标.

注意:问题WinForms .NET 2.0:如何绘制正确大小的图标?处理绘制从文件加载的Vista图标.这个问题涉及绘制从.resource加载的Vista图标.


我在我的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));
Run Code Online (Sandbox Code Playgroud)

以下是未拉伸的32x32格式:

Icon ico = Properties.Resources.TestIconThatHasA256PNGFormat;
e.Graphics.DrawIconUnstretched(ico, new Rectangle(0, 0, 256, 256));
Run Code Online (Sandbox Code Playgroud)

下面将32x32格式绘制为256x256:

Icon ico = Properties.Resources.TestIconThatHasA256PNGFormat;
e.Graphics.DrawImage(ico.ToBitmap(), new Rectangle(0, 0, 256, 256));
Run Code Online (Sandbox Code Playgroud)

下面将48x48格式绘制为256x256:

Icon ico = Properties.Resources.TestIconThatHasA256PNGFormat;
e.Graphics.DrawIcon(
      new Icon(ico, new Size(256, 256)),
      new Rectangle(0, 0, 256, 256));
Run Code Online (Sandbox Code Playgroud)

如何绘制256x256格式图标?


笔记:

  1. 该图标不是来自文件,因此PInvoking LoadImage()将无济于事.

  2. 该图标不是与文件关联的图标,因此PInvoking SHGetFileInfo()无济于事.也不会使用Icon.ExtractAssociatedIcon …

.net graphics windows-vista winforms

11
推荐指数
1
解决办法
2235
查看次数

标签 统计

.net ×1

graphics ×1

windows-vista ×1

winforms ×1