创建一张bitmap,并用DrawString() 上写数字;
把bitmap放到PictureBox里,
再把PictureBox放到Panel上,
显示出来的数字非常模糊图片放到PictureBox中没有任何拉升缩放,
PictureBox放到Panel上没有任何拉升缩放,请问这个数字在bitmap上怎么画才能不模糊?

解决方案 »

  1.   

    测不出哪里拉升了。什么情况
                    scale = new PictureBox();
                    scale.BorderStyle = BorderStyle.None;
                    scale.Width = Width;
                    scale.Height = Height;
                    scale.Parent = MainPanel;                bitmap = new Bitmap(Width , Height);
                 //   Graphics g = MainPanel.CreateGraphics();
                    Graphics g = Graphics.FromImage(bitmap);
                    Pen pen = new Pen(Color.Black);
                    pen.DashStyle = DashStyle.Solid;
                    SolidBrush brush = new SolidBrush(Color.Black);
                    Font font = new Font("Airal", 5);
                    Point start = new Point(0, 0);                  //每个刻度断线的起终位置
                    Point end = new Point(0, 0);
                    if (0 == dir)   //水平
                    {
                        g.DrawLine(pen, new Point(location.X, location.Y + Height - 1), new Point(location.X + Width, location.Y + Height - 1));
                        
                        start.X = location.X;
                        start.Y = location.Y + Height - 1;
                        //画短竖线
                        for (int i = 0; i <= WidthMM; i++)
                        {
                            start.X = location.X + CONVERT.MMToPiexls(i, _dpix);
                            start.Y = location.Y + Height - 1;                        end.X = start.X;
                            end.Y = start.Y - 3;
                            if (i % 5 == 0)
                            {
                                end.Y = start.Y - 4;
                            }
                            if (i % 10 == 0)
                            {
                                countX++;
                                end.Y = start.Y - 6;
                                StringFormat sf = new StringFormat();
                                //这里画出的数字很模糊
                                g.DrawString(i.ToString(), font, brush, new Point(start.X - 1, start.Y - 14));
                            }
                            g.DrawLine(pen, start, end);
                        }
                    }                scale.Image = (Image)bitmap;
                    g.Dispose();
      

  2.   

    我也碰到这个问题,8号字体就模糊。9号就OK了。
    还有一个奇怪的事情。另外一个XP机器,显示正常是。现在是WIN7的就不正常。如果用Arial字本,不正常机器用9号10号也是不正常。