看过ppstream和酷狗音乐盒,中间有一条线可以左右拉伸,改变左右的宽度,其中用到了划线的功能。
我现在也想实现这样的功能,请问如何画直线啊? 画直线的C#代码怎么写?

解决方案 »

  1.   

    你要自己画线分割啊
    有才啊
    干嘛不用splitter现成的控件来分割区域啊
      

  2.   

                Graphics gc = e.Graphics;
                /// 设置绘图的颜色
                Brush greenBrush = new SolidBrush(Color.Green);
                int radius = 30;
                // 绘制圆,(0, 0)为左上角的坐标,radius为直径
                gc.FillEllipse(greenBrush, 0, 0, radius, radius);
                Brush yellowBush = new SolidBrush(Color.Yellow);
                // 绘制椭圆,其实圆时椭圆的特殊的一种,即两个定点重合, (50, 60)为左上角的坐标,
                // 70位椭圆的宽度,100位椭圆的高度
                gc.FillEllipse(yellowBush, 50, 60, 70, 100);            // 绘制三角形,指定红色和线宽5。三个顶点为(150,160) (200, 210) (280, 180),绘制三条连线。
                Pen pen = new Pen(Color.Red, 30);
                gc.DrawLine(pen, 150, 160, 200, 210);
                gc.DrawLine(pen, 200, 210, 280, 180);
                gc.DrawLine(pen, 150, 160, 280, 180);            /// 绘制矩形,(50,300)左上角坐标,110位宽度, 80为高度。
                gc.DrawRectangle(pen, 50, 300, 110, 80);
                Brush blueBrush = new SolidBrush(Color.Blue);
                /// 绘制文本
                gc.DrawString("Graphic绘制图形的例子", new Font("宋体", 20, FontStyle.Italic),
                    blueBrush, new PointF(300, 400));
                /// 绘制图片 TestGraphic.Properties.Resources.niang为图片在资源中的名称,可以先将图片设置为Panel的背景图,
                /// 获得图片的名称,然后将Panel的背景图清空。(400,20)是图片左上角坐标,300,300是图片将要显示的宽度和高度,
                /// 并不是图片本身的宽度和高度。
                Image image = global::TestGraphic.Properties.Resources.niang;
                gc.DrawImage(image, new Rectangle(400, 20, 300, 300));
    Pen 里面那个30 就是线宽
      

  3.   


    用splitContainer,划分区域。
      

  4.   

                Bitmap image = new Bitmap((int)Math.Ceiling(4 * 12.5), 22);
                Graphics g = Graphics.FromImage(image);
                    //画图片的边框线
                    g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
      

  5.   

    有本電子書 C# 高級編程
    裡面有一章專門對GDI+ 作了詳細的說明
    剛好最近在看.
      

  6.   

    Pen  p = new  Pen(Color.Blue, 5);//设置笔的粗细为,颜色为蓝色
    Graphics  g = this.CreateGraphics();
    //画虚线
    p.DashStyle = DashStyle.Dot;//定义虚线的样式为点
    g.DrawLine(p, 10, 10, 200, 10);
    //自定义虚线
    p.DashPattern = new  float[] { 2, 1 };//设置短划线和空白部分的数组
    g.DrawLine(p, 10, 20, 200, 20);g.Dispose();
    p.Dispose();
      

  7.   

    谢谢啦~~我已经解决了。。
    用ControlPaint.DrawLines(StartPoint,EndPoint);