2016-03-24 5 views
0

txtbKleuren.Foreground = neuer SolidColorBrush (Color.FromArgb (100, 255, 125, 35)); Ich habe 4 Tasten mit den Namen rot, grün, blau und gelb und einen Textblock. Wenn also die Farbe gelb auf dem Textblock erscheint, muss ich die Taste gelb drücken, um einen Punkt zu erhalten. Wie kann ich den Textblock zufällig eine der 4 Farben geben?Wie kann ich einer TextBox in Xaml 4 zufällige Farben geben?

Dies ist mein Code:

public MainPage() 
     { 
      this.InitializeComponent(); 
      Random rand = new Random(); 

      txtbKleuren.Foreground = new SolidColorBrush(Color.FromArgb(100, 255, 125, 35)); 

     } 

     private void btnKleur4_Click(object sender, RoutedEventArgs e) 
     { 

     } 

Ich weiß nicht, wie eine zufällige Farbe in das Textfeld zu geben, damit nur versucht, etwas, das ich! Bitte hilf mir. Ich möchte es wirklich wissen! Und tut mir leid für mein schlechtes Englisch.

+0

Ran dom nur aus vier Farben? (Rot, Blau, Grün, Gelb)? –

+0

Ja oder vielleicht ein Text wie nur die Textbox den Text: Grün, Blau, Rot und Gelb in einer zufälligen Art und Weise. – Xaml

+0

In Ordnung, warte ich schreibe die Antwort. Es sollte funktionieren. Danke für Ihre Geduld :) –

Antwort

1

Zuerst würde ich empfehlen, dass Sie Ihre Random Variable als eine Klassenmitgliedsvariable deklarieren, so dass Sie später darauf zugreifen können, wenn Sie es brauchen. Es ist eine gute Übung, es so zu machen. Also, es ausdrückte außerhalb jegliche Methoden/Funktionen:

Random rand = new Random(); 

auf die Frage kommen auf, können Sie zunächst eine Reihe von vordefinierten Farben (Rot, Blau, Grün und Gelb) erklärt:

Color[] colors = new Color[] 
{ 
    Colors.Red, 
    Colors.Blue, 
    Colors.Green, 
    Colors.Yellow 
}; 

Anstatt Colors.Yellow usw. zu verwenden, können Sie auch benutzerdefinierte Farben definieren, wie Sie es in Ihrer Frage getan haben.

Als Nächstes verwenden Ihre rand Variable eine Zufallszahl (zwischen 0 und 3) zu erzeugen, als Index für das Array zu verwenden:

int randIndex = rand.Next(0, 4); // 0, 3 + 1 -> the Random.Next() function's upper bound is exclusive. 

Schließlich Ihre zufällige Farbe erhalten:

Color randColor = colors[randIndex]; 
txtbKleuren.Foreground = new SolidColorBrush(randColor); 

Oder Sie können sogar den Namen der Farbe und die entsprechende Vordergrundfarbe anzeigen:

Dictionary<string, Color> colors = new Dictionary<string, Color>() 
{ 
    { 
     "Red", 
     Colors.Red 
    }, 
    { 
     "Blue", 
     Colors.Blue 
    }, 
    { 
     "Green", 
     Colors.Green 
    }, 
    { 
     "Yellow", 
     Colors.Yellow 
    } 
}; 

var randColName = colors.ToArray()[randIndex]; 
txtbKleuren.Text = randColName.Key; 
txtbKleuren.Foreground = new SolidColorBrush(randColName.Value); 
+0

Ja, danke! – Xaml

Verwandte Themen