使用畫筆和鋼筆

1.       陰影畫筆

 

                   HatchBrush hBrush1 = new HatchBrush

                       (HatchStyle.DashedVertical, Color.Chocolate, Color.Red);

                   HatchBrush hBrush2 = new HatchBrush

                       (HatchStyle.DarkDownwardDiagonal, Color.Green, Color.Black);

                   HatchBrush hBrush3 = new HatchBrush

                       (HatchStyle.SmallCheckerBoard, Color.BlueViolet, Color.Blue);

 

                   g.FillEllipse(hBrush1, 20, 40, 100, 120);         

                   Rectangle rect = new Rectangle(150, 80, 200, 140);           

                   g.FillPie(hBrush3, 40, 20, 200, 40, 0.0f, 60.0f );          

                   g.FillRectangle(hBrush2, rect); 

 

 

2. Form1_Load事件處理程序:創建一個位圖並從此位圖創建一個Graphics對象。

private void Form1_Load(object sender,

              System.EventArgs e)

         {

              // Get the full size of the form

              fullSize = SystemInformation

                   .PrimaryMonitorMaximizedWindowSize;

              // Create a bitmap using full size

              bitmap = new Bitmap(fullSize.Width,

                   fullSize.Height);

              // Create a Graphics object from Bitmap

              curGraphics = Graphics.FromImage(bitmap);

              // Set background color as form's color

              curGraphics.Clear(this.BackColor);

              // Default pen and brush button colors

              PenBtn.BackColor = Color.Black;

              BrushBtn.BackColor = Color.Black;

              // Create a new pen and brush as

              // default pen and brush

              curPen = new Pen(Color.Black);

              curBrush = new SolidBrush(Color.Black);

         }

3. 選擇鋼筆和畫筆的顏色

     private void PenSettings_Click(object sender,

              System.EventArgs e)

         {

              ColorDialog colorDlg = new ColorDialog();

              colorDlg.ShowDialog();

              PenBtn.BackColor = colorDlg.Color;       

         }

 

         private void BrushSettings_Click(object sender,

              System.EventArgs e)

         {

              ColorDialog colorDlg = new ColorDialog();

              colorDlg.ShowDialog();

              BrushBtn.BackColor = colorDlg.Color;     

         }

4.      窗體的paint事件處理程序

以下代碼設置鋼筆的ColorWidth屬性及畫筆的Color屬性。

private void Form1_Paint(object sender,

      System.Windows.Forms.PaintEventArgs e)

    {

      // Set current pens color

      curPen.Color = Color.FromArgb(

        Convert.ToInt16(

        TransCounter.Value.ToString()),

        PenBtn.BackColor.R,

        PenBtn.BackColor.G,

        PenBtn.BackColor.B);

      // Set pen's width

      curPen.Width = (float)PenWidthCounter.Value;

      // Set current brush's color

      curBrush.Color = Color.FromArgb(

        Convert.ToInt16(

        TransCounter.Value.ToString()),

        BrushBtn.BackColor.R,

        BrushBtn.BackColor.G,

        BrushBtn.BackColor.B);

   

      Graphics g = e.Graphics;

      // If dragmode is true, draw selected

      // graphics shape

      if (dragMode)

      {

        switch (drawIndex)

        {

          case 1:

          {

            g.DrawLine(curPen, curX, curY, x, y);

            break;

          }

          case 2:

          {

            g.DrawEllipse(curPen,

              curX, curY, diffX, diffY);

            break;

          }

          case 3:

          {

            g.DrawRectangle(curPen,

              curX, curY, diffX, diffY);

            break;

          }

          case 4:

          {      

            g.FillRectangle(curBrush,

              curX, curY, diffX, diffY);           

            break;

          }

          case 5:

          {

            g.FillEllipse(curBrush,

              curX, curY, diffX, diffY);

            break;

          }      

        }

      }

}

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章