2015-11-28 31 views
-1

我想改变我的笔和纯色笔的颜色。如何更改c#中笔的颜色?

我硬编码它们,但现在我想知道如何只使用一支笔,并使用GUI(下拉列表,调色板等)将颜色更改为任何颜色。

这里是我的编码:

private void imageComboBox_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     // create graphics object, Pen and SolidBrush 
     Graphics myGraphics = base.CreateGraphics(); 

     // create Pen using different colors 
     Pen myPen = new Pen(Color.DarkRed); 
     Pen myPen2 = new Pen(Color.Blue); 
     Pen myPen3 = new Pen(Color.Purple); 
     Pen myPen4 = new Pen(Color.DarkGreen); 

     // create SolidBrush using color DarkRed 
     SolidBrush mySolidBrush = new SolidBrush(Color.DarkRed); 
     SolidBrush mySolidBrush2 = new SolidBrush(Color.Orange); 
     SolidBrush mySolidBrush3 = new SolidBrush(Color.Blue); 
     SolidBrush mySolidBrush4 = new SolidBrush(Color.Green); 

     // clear drawing area setting it to color white 
     myGraphics.Clear(Color.White); 

     // find index, draw proper shape 
     switch (imageComboBox.SelectedIndex) 
     { 
      case 0: // case Circle is selected 
       myGraphics.DrawEllipse(myPen, 50, 50, 150, 150); 
       break; 
      case 1: // case Rectangle is selected 
       myGraphics.DrawRectangle(myPen2, 50, 50, 150, 150); 
       break; 
      case 2: // case Ellipse is selected 
       myGraphics.DrawEllipse(myPen3, 50, 85, 150, 115); 
       break; 
      case 3: // case Pie is selected 
       myGraphics.DrawPie(myPen4, 50, 50, 150, 150, 0, 45); 
       break; 
      case 4: // case Filled Circle is selected 
       myGraphics.FillEllipse(mySolidBrush, 50, 50, 150, 150); 
       break; 
      case 5: // case Filled Rectangle is selected 
       myGraphics.FillRectangle(mySolidBrush2, 50, 50, 150, 
        150); 
       break; 
      case 6: // case Filled Ellipse is selected 
       myGraphics.FillEllipse(mySolidBrush3, 50, 85, 150, 115); 
       break; 
      case 7: // case Filled Pie is selected 
       myGraphics.FillPie(mySolidBrush4, 50, 50, 150, 150, 0, 
        45); 
       break;} 
     myGraphics.Dispose(); // release the Graphics object 
    } 
+0

为什么如果您只使用其中一个笔,则创建四支笔?你不应该“处置”他们吗? – CompuChip

回答

0

您可以使用Pen这样的Color属性更改Pen的颜色:

Pen p = new Pen(); 
p.Color = Color.Red; 

然后你就可以在各种情况下使用p.Color = ...并使用同一支笔。