【问题标题】:Winforms: Is there a way to put some space between image and checkbox in treeview?Winforms:有没有办法在树视图中的图像和复选框之间放置一些空间?
【发布时间】:2013-12-19 20:09:45
【问题描述】:

我在 Winforms 和这个 TreeView 中创建了一个 Treeview,我同时使用了图像和复选框。最终的结果是,图像非常接近复选框,几乎可以接触到它们。有没有办法在图像和复选框之间放置几个像素的空白空间。如果可能的话,我想避免自定义绘画,但如果这确实是唯一的方法,你能指出我正确的绘画方向吗?

下载后,我尝试在左侧图像中添加几 (5) 个像素,但它看起来仍然很奇怪。有人对如何自定义绘制树有任何建议吗?

提前致谢。

【问题讨论】:

  • 获得更多空间的明显方法是使用左侧有空像素的图像:)
  • @Hans 不幸的是,我无法控制图像。我正在从我也无法控制的服务器中提取它们。也许我可以对图像进行一些后期处理以添加像素。我会调查的。

标签: .net winforms treeview


【解决方案1】:

这个 sn-p 是我用来解决这个问题的方法。

        Point destPt = new Point(6, 0);
        Size size = new Size(22, 16);
        tv.ImageList = new ImageList();
        tv.ImageList.ImageSize = size;
        foreach (String imgKey in imgListSrc.Images.Keys)
        {
            Bitmap bmp = new Bitmap(size.Width, size.Height);
            Graphics g = Graphics.FromImage(bmp);
            g.DrawImage(imgListSrc.Images[imgKey], destPt);
            g.Dispose();
            tv.ImageList.Images.Add(imgKey, (Image)bmp);
        }

【讨论】:

  • 太棒了!只需像往常一样管理原始图像列表并在 OnLoad 事件中运行这样的代码。将新的和修改后的图像列表分配给 treeeview Imagelist 属性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-03
  • 1970-01-01
相关资源
最近更新 更多