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

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

LinearGradientBrush.RotateTransform

<source lang="csharp"> 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);
   }

}

 </source>


new LinearGradientBrush

<source lang="csharp">

 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;
     }
   }
 }
  
 </source>