说白了。就是要画一个圈,圈的上边有刻度,就是类似与手表盘样式的一个东西。如何来画呀

解决方案 »

  1.   

    还有点补充的是。我要在一个bitmap中来画。并不是在窗体上画的。用的是双缓冲的方法,
    这点必须明确。。注意是在bitmap上画的
      

  2.   

     public void DrawBox(Bitmap bt,int x, int y)
            {
               
                for (int i = 0; i < 360; i += 10)
                {
                    System.Drawing.Drawing2D.Matrix matrix = new System.Drawing.Drawing2D.Matrix();
                    matrix.RotateAt(i - 170, new PointF(x, y));
                    //  Graphics.FromImage(bt).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
                      Graphics.FromImage(bt).Transform = matrix;
                      Graphics.FromImage(bt).DrawLine(Pens.Black, new Point(x+200, y), new Point(x+220, y));
                    StringFormat sf = new StringFormat();
                    sf.Alignment = StringAlignment.Center;
                     Graphics.FromImage(bt).DrawString((350-i).ToString() + "°", new Font("黑体", 10), Brushes.Blue, new PointF(0 + 25, y), sf);
                }
                this.Invalidate();
            }我这个方法为什么不行呢
      

  3.   

      我的方法是:在那个初始化一个bitmap对象,然后就是把它加载到backgroundimage中。
     Bitmap mybitmap = Image.FromFile("");
      this.BackgroundImage=mybitmap;
    这不就行了吗?
      

  4.   

    给你看看这个,我同事写的代码,我写了部分文档,可以让你有一个清楚的思路~~~
    http://www.vckbase.com/document/viewdoc/?id=1727
      

  5.   

    http://www.codeproject.com/KB/miscctrl/A_Gauge.aspx