Csharp/C Sharp by API/System.Drawing.Drawing2D/LinearGradientBrush

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

LinearGradientBrush.RotateTransform

 
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Collections;
using System.ruponentModel;
using System.Windows.Forms;
using System.Data;
public class Form1 : System.Windows.Forms.Form{
    private System.ruponentModel.IContainer components;
  public Form1(){
    InitializeComponent();
  }

  #region Windows Form Designer generated code
  private void InitializeComponent(){
      this.ruponents = new System.ruponentModel.Container();
      this.timer1 = new System.Windows.Forms.Timer(this.ruponents);
      this.timer1.Enabled = true;
      this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
      this.AutoScaleBaseSize = new System.Drawing.Size(6, 15);
      this.ClientSize = new System.Drawing.Size(292, 260);
      this.Name = "Form1";
      this.Text = "LinearGradientBrush Demo";
      this.Load += new System.EventHandler(this.Form1_Load);
      this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
    }
  #endregion
  static void Main(){
    Application.Run(new Form1());
  }
    private void Form1_Load(object sender, System.EventArgs e) {
      this.BackColor = Color.FromArgb(255, 0, 0, 255);  
    }
    private System.Windows.Forms.Timer timer1;
    private float angle = 0;
    private LinearGradientBrush GetBrush()
    {
      return new LinearGradientBrush(
        new Rectangle( 20, 20, 200, 100),
        Color.Orange,
        Color.Yellow,
        0.0F,
        true);
    }

    private void Rotate( Graphics graphics, LinearGradientBrush brush )
    {
      brush.RotateTransform(angle);
      brush.SetBlendTriangularShape(.5F);
      graphics.FillRectangle(brush, brush.Rectangle);
    }
    private void Rotate(Graphics graphics)
    {
      angle += 5 % 360;
      Rotate(graphics, GetBrush());
    }
    private void timer1_Tick(object sender, System.EventArgs e)
    {
      Rotate(CreateGraphics());
    }
    private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
      Rotate(e.Graphics);
    }
}


new LinearGradientBrush

 
          
  using System;
  using System.Drawing;
  using System.Drawing.Drawing2D;
  using System.Collections;
  using System.ruponentModel;
  using System.Windows.Forms;
  using System.Data;
  public class Form1 : System.Windows.Forms.Form
  {
    public Form1()
    {
      InitializeComponent();
      SetStyle(ControlStyles.ResizeRedraw, true);
    }
    private void InitializeComponent()
    {
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(211, 104);
      this.Text = "";
      this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
    }
    static void Main() 
    {
      Application.Run(new Form1());
    }
    private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
      Graphics g = e.Graphics;
      Rectangle r = new Rectangle(10, 10, 100, 100);
      LinearGradientBrush theBrush = null;
      int yOffSet = 10;
      Array obj = Enum.GetValues(typeof(LinearGradientMode));
      for(int x = 0; x < obj.Length; x++)
      {
        LinearGradientMode temp = (LinearGradientMode)obj.GetValue(x);
        theBrush = new LinearGradientBrush(r, Color.Red, 
          Color.Blue, temp);      
        
        g.DrawString(temp.ToString(), new Font("Times New Roman", 10), 
          new SolidBrush(Color.Black), 0, yOffSet);
        g. FillRectangle(theBrush, 120, yOffSet, 200, 50);
        yOffSet += 80;
      }
    }
  }