Csharp/C Sharp/Components/Gradient Panel

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

Gradient Panel Demo

<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Drawing.Drawing2D; using System.Drawing.Design; public class Form1 : Form {

       private GradientPanel gradientPanel1;
       private System.Windows.Forms.Label label3;
       private System.Windows.Forms.Button button1;
       private System.Windows.Forms.Label label2;
       private System.Windows.Forms.Label label1;
     public Form1() {
           InitializeComponent();
     }
       private void InitializeComponent()
       {
           this.gradientPanel1 = new GradientPanel();
           this.label3 = new System.Windows.Forms.Label();
           this.button1 = new System.Windows.Forms.Button();
           this.label2 = new System.Windows.Forms.Label();
           this.label1 = new System.Windows.Forms.Label();
           this.gradientPanel1.SuspendLayout();
           this.SuspendLayout();
           // 
           // gradientPanel1
           // 
           this.gradientPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                       | System.Windows.Forms.AnchorStyles.Left)
                       | System.Windows.Forms.AnchorStyles.Right)));
           this.gradientPanel1.AutoScroll = true;
           this.gradientPanel1.Controls.Add(this.label3);
           this.gradientPanel1.Controls.Add(this.button1);
           this.gradientPanel1.Controls.Add(this.label2);
           this.gradientPanel1.Controls.Add(this.label1);
           
           this.gradientPanel1.Location = new System.Drawing.Point(4, 6);
           this.gradientPanel1.Name = "gradientPanel1";
           this.gradientPanel1.Size = new System.Drawing.Size(427, 190);
           this.gradientPanel1.TabIndex = 1;
           // 
           // label3
           // 
           this.label3.BackColor = System.Drawing.Color.Transparent;
           this.label3.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
           this.label3.ForeColor = System.Drawing.Color.White;
           this.label3.Location = new System.Drawing.Point(18, 57);
           this.label3.Name = "label3";
           this.label3.Size = new System.Drawing.Size(328, 39);
           this.label3.TabIndex = 2;
           this.label3.Text = "text." +
               "";
           // 
           // button1
           // 
           this.button1.Location = new System.Drawing.Point(231, 109);
           this.button1.Name = "button1";
           this.button1.Size = new System.Drawing.Size(75, 23);
           this.button1.TabIndex = 1;
           this.button1.Text = "Test Button";
           // 
           // label2
           // 
           this.label2.AutoSize = true;
           this.label2.BackColor = System.Drawing.Color.Transparent;
           this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
           this.label2.ForeColor = System.Drawing.Color.White;
           this.label2.Location = new System.Drawing.Point(40, 226);
           this.label2.Name = "label2";
           this.label2.Size = new System.Drawing.Size(108, 37);
           this.label2.TabIndex = 1;
           this.label2.Text = "label2";
           // 
           // label1
           // 
           this.label1.AutoSize = true;
           this.label1.BackColor = System.Drawing.Color.Transparent;
           this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
           this.label1.ForeColor = System.Drawing.Color.White;
           this.label1.Location = new System.Drawing.Point(17, 12);
           this.label1.Name = "label1";
           this.label1.Size = new System.Drawing.Size(277, 37);
           this.label1.TabIndex = 0;
           this.label1.Text = "Transparent Text";
           // 
           // GradientPanelTest
           // 
           this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
           this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
           this.ClientSize = new System.Drawing.Size(435, 260);
           this.Controls.Add(this.gradientPanel1);
           this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
           this.Name = "GradientPanelTest";
           this.Text = "GradientPanel";
           this.gradientPanel1.ResumeLayout(false);
           this.gradientPanel1.PerformLayout();
           this.ResumeLayout(false);
       }
 [STAThread]
 static void Main()
 {
   Application.EnableVisualStyles();
   Application.Run(new Form1());
 }

}

 public class GradientPanel : Panel
 {  
       private Color ColorA = Color.LightBlue;
       private Color ColorB = Color.Red;
       private LinearGradientMode GradientFillStyle = LinearGradientMode.ForwardDiagonal;
       private Brush gradientBrush;
       public GradientPanel()
       {
           handlerGradientChanged = new EventHandler(GradientChanged);
           ResizeRedraw = true;
       }
       private EventHandler handlerGradientChanged;
   protected override void OnPaintBackground( System.Windows.Forms.PaintEventArgs e)
       {       
           gradientBrush = new LinearGradientBrush(ClientRectangle, ColorA, ColorB, GradientFillStyle);
     e.Graphics.FillRectangle(gradientBrush, ClientRectangle);
       }
       protected override void Dispose(bool disposing)
       {
           if (disposing)
           {
               if (gradientBrush != null) gradientBrush.Dispose();
           }
           base.Dispose(disposing);
       }
       protected override void OnScroll(ScrollEventArgs se)
       {
           Invalidate();
       }
   
       private void GradientChanged(object sender, EventArgs e)
   {
           if (gradientBrush != null) gradientBrush.Dispose();
           gradientBrush = null;
     Invalidate();
   }
 }


      </source>