使用TabControl ImageList在TabPage标题中的低质量图像

时间:2015-02-04 03:44:35

标签: c# .net winforms tabpage

我遇到TabPage标题上显示的图像的图像质量问题。我的源图像是16x16 png,具有透明度。当我将它加载到TabPage标题时,质量很糟糕。到目前为止,我能够想到的最好的是使用8位png而不是32位png。这有很大帮助,但质量仍然不如我想的那么好,仍然不如32位png。有没有人有一个很好的方法来保持png质量?

(左侧32位原件。右侧32位标签标题质量较低。)

enter image description here

(左侧8位原稿。右侧8位标签标题质量较低。)

enter image description here

(左侧32位原稿。右侧8位标签标题质量较低。)

enter image description here

我正在尝试/希望尽可能接近原来的32位png。

我正在使用以下代码:

using System.Drawing;
using System.Windows.Forms;

public class Form1
{
    public void Form1()
    {
        InitializeComponent();

        // initialize the imagelist
        ImageList imageList1 = new ImageList();
        imageList1.Images.Add("key1", Properties.Resources.Image1png);
        imageList1.Images.Add("key2", Properties.Resources.Image2png);

        //initialize the tab control
        TabControl tabControl1 = new TabControl();
        tabControl1.Dock = DockStyle.Fill;
        tabControl1.ImageList = imageList1;
        tabControl1.TabPages.Add("tabKey1", "TabText1", "key1"); 
        tabControl1.TabPages.Add("tabKey2", "TabText2", "key2");
        this.Controls.Add(tabControl1);
    }
}

2 个答案:

答案 0 :(得分:1)

不确定这是否可以回答您的问题,但必须将其作为回答包含快照。

您可以尝试以下方法:

  1. 选择图像列表;
  2. 配置ColorDepth属性,并从" Depth8bit"设置它。到" Depth32bit"
  3. enter image description here

    或者只是在代码中更改它:

    imageList1.ColorDepth = ColorDepth.Depth32Bit;
    

答案 1 :(得分:0)

在ImageList(与TabControl相关联)中,删除所有图像并以相同的顺序重新添加。

这是它对我有用的唯一方式!