2016-03-23 4 views
1

Farbe c = Colors.Red;Übergeben einer Farbvariablen zwischen privaten Leerstellen

Wie kann ich die obige Farbvariable von einer privaten Lücke in eine andere übergeben? Vielen Dank im Voraus Stephanie

private void btnRedClick(object sender, RoutedEventArgs e) 
{ 
    Color c = Colors.Red; 
} 

private void inkCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
{ 
    if (inkCanvas.EditingMode == InkCanvasEditingMode.None) 
    { 
     if(dtm == DrawingToolMode.ellipse) 
     { 
      Ellipse myEllipse = new Ellipse(); 
      //Color c = Colors.Red; 
      System.Windows.Media.SolidColorBrush scb = 
      new SolidColorBrush(c); 
      myEllipse.Stroke = (scb); 
      myEllipse.Fill = (scb); 
      Point p = Mouse.GetPosition(this.inkCanvas); 
      InkCanvas.SetTop(myEllipse, p.Y); 
      InkCanvas.SetLeft(myEllipse, p.X); 
      myEllipse.Height = 20; 
      myEllipse.Width = 20; 
      inkCanvas.Children.Add(myEllipse); 
     } 
    } 
} 
+2

eine Klassenmitgliedsvariable erstellen? – Toumash

Antwort

2

Bewahren Sie es in einem privaten Bereich: obwohl

private Color _color; 

private void btnRedClick(object sender, RoutedEventArgs e) 
{ 
    _color = Colors.Red; 

} 

private void inkCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
{ 
    Color myLocalColor = _color; 
} 

Ich schlage vor, Sie 101 lesen Sie auf Programmierung. Dies ist eine sehr elementare Frage.

+0

Es ist nicht. Wir haben zur selben Zeit gepostet. Concurrency-Problem;) –

+0

Danke Wicher hat es funktioniert –

+0

Großartig! Bitte akzeptiere meine Antwort. Viel Glück :) –

5

Erklären Sie Ihre Farbe wie folgt aus:

private Color c = Color.Blue; // Set default color 

private void btnRedClick(object sender, RoutedEventArgs e) 
    { 
     c = Color.Red; 
    } 

    private void inkCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
    { 
     if (inkCanvas.EditingMode == InkCanvasEditingMode.None) 
     { 
      if(dtm == DrawingToolMode.ellipse) 
      { 
       Ellipse myEllipse = new Ellipse(); 
       System.Windows.Media.SolidColorBrush scb = 
       new SolidColorBrush(c); 
       myEllipse.Stroke = (scb); 
       myEllipse.Fill = (scb); 
       Point p = Mouse.GetPosition(this.inkCanvas); 
       InkCanvas.SetTop(myEllipse, p.Y); 
       InkCanvas.SetLeft(myEllipse, p.X); 
       myEllipse.Height = 20; 
       myEllipse.Width = 20; 
       inkCanvas.Children.Add(myEllipse); 
      } 
     } 

    } 
Verwandte Themen