首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数据视图绘制晶圆图

数据视图绘制晶圆图
EN

Stack Overflow用户
提问于 2013-08-13 07:07:31
回答 1查看 2.2K关注 0票数 1

目前,我正在使用C# datagridview绘制包含>500行和>700列的晶圆映射。

然而,有几个问题:

  1. 表演缓慢。由于我需要调整列的宽度,我必须遍历并赋值individually.for (int = 0;i< this.dgvCompleteMapGrid.Columns.Count;i++) { this.dgvCompleteMapGrid.Columnsi.Width = 8;}
  2. 我只需要绘制细胞边界的值,因为晶片地图有一个几乎圆形。我用的是细胞绘画活动: if (e.Value != null) { if (e.Value.ToString() == "") { e.AdvancedBorderStyle.All = DataGridViewAdvancedCellBorderStyle.None;}{ if (e.Value.ToString() == "1") { e.CellStyle.BackColor = Color.Lime;{ e.CellStyle.BackColor = Color.Red;}//检查顶部边框是否为邻居空值单元格设置None,如果(e.AdvancedBorderStyle.Top.ToString() == "None") { e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.Single;}//对左、右和底部}重复相同的}

但是,它似乎会为大多数单元格绘制多个边框复制。

推荐使用Datagridview吗?我试着在面板上画长方形,结果表现更差。

EN

回答 1

Stack Overflow用户

发布于 2013-10-29 20:33:38

这是我的Picturebox,它允许像素大小(相对于内插)。类似于放大微软的画图。

代码语言:javascript
运行
复制
using System.Windows.Forms;

namespace WireWorld
{
    public class ZoomablePicturebox : PictureBox
    {
        public ZoomablePicturebox()
        {
        }

        protected override void OnPaint(PaintEventArgs pe)
        {
            pe.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None;
            pe.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
            pe.Graphics.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;
            pe.Graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighSpeed;
            base.OnPaint(pe);
        }
    }
}

要生成位图,我使用如下内容:

代码语言:javascript
运行
复制
// Pick width and height for your case
Bitmap MyBitmap = new Bitmap(width, height);
using (var g = Graphics.FromImage(retVal))
    g.Clear(BackColor); // Pick a background fill color
// Draw your points, whatever your loop needs to be and your point definition is
foreach (MyPointDef point in _Points)
{
    MyBitmap.SetPixel(point.X, point.Y, point.Color);
}

然后我在表格上的面板上放了一个画框。然后面板提供滚动。我可以设置图片和缩放如下:

代码语言:javascript
运行
复制
canvasPB.SizeMode = PictureBoxSizeMode.Zoom; // Ensures picture is resized as we resize picturebox
canvasPB.Image = MyBitmap;
canvasPB.Height = canvasPB.Image.Height * Zoom; // Zoom is 1, 2, 3, etc, for 1X, 2X, ...
canvasPB.Width = canvasPB.Image.Width * Zoom;

canvasPB是我的表单中图片框的名称,我试图使用它作为画布。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18202730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档