c# winform 应用编程代码总结 8

28、创建线性梯度

        private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
        {
            LinearGradientBrush linGrBrush = new LinearGradientBrush(
                new Point(0, 0),
                new Point(200, 100),
                Color.FromArgb(255, 0, 0, 255),   // opaque blue
                Color.FromArgb(255, 0, 255, 0));  // opaque green

            Pen pen = new Pen(linGrBrush, 10);

            e.Graphics.DrawLine(pen, 0, 0, 600, 300);
            e.Graphics.FillEllipse(linGrBrush, 10, 100, 200, 100);        
        }

        效果:

       image

29、连接线条

        private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
        {
            GraphicsPath path = new GraphicsPath();
            Pen penJoin = new Pen(Color.FromArgb(255, 0, 0, 255), 8);

            path.StartFigure();
            path.AddLine(new Point(50, 200), new Point(100, 200));
            path.AddLine(new Point(100, 200), new Point(100, 250));

            penJoin.LineJoin = LineJoin.Bevel;
            e.Graphics.DrawPath(penJoin, path);        
        }

        效果:

         image

30、将 Gamma 校正应用于梯度

        private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
        {
            LinearGradientBrush linGrBrush = new LinearGradientBrush(
                new Point(0, 10),
                new Point(200, 10),
                Color.Red,
                Color.Blue);

            e.Graphics.FillRectangle(linGrBrush, 0, 0, 200, 50);
            linGrBrush.GammaCorrection = true;
            e.Graphics.FillRectangle(linGrBrush, 0, 60, 200, 50);        
        }

       效果图:

      image

31、绘制用纹理填充的线条

        private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
        {
            Bitmap bitmap = new Bitmap("..\\..\\test.jpg");
            TextureBrush tBrush = new TextureBrush(bitmap);
            Pen texturedPen = new Pen(tBrush, 30);

            e.Graphics.DrawImage(bitmap, 0, 0, bitmap.Width, bitmap.Height);
            e.Graphics.DrawEllipse(texturedPen, 100, 20, 200, 100);        
        }

       image

本系列文章是作者学习《Visual C#.NET 应用编程150例》(源码)心得笔记,欢迎转载,请注明原文地址,如有疑问,可以通过 278250658@qq.com 联系作者本人。

原文地址:https://www.cnblogs.com/syxchina/p/2197278.html