2016-07-23 24 views
2

Ich muss den Text und die Farbe einer Schaltfläche ändern, während das Klickereignis aufgetreten ist, aber nur für ein paar Sekunden sollten dann die alten Werte für Text und Farbe angezeigt werden .Farbe und Text der Schaltfläche für einen bestimmten Zeitraum ändern

Wie könnte das funktionieren? Vielleicht mit einer asynchronen Aufgabe, die die Werte nach Ablauf der Zeit zurücksetzt?

Das Problem ist, dass ich erkannte, dass die Farbe und der Text erst aktualisiert werden, nachdem die Click-Event-Methode beendet wurde.

+0

Storyboard nachschlagen – Paparazzi

Antwort

3

Ich mache derzeit viel Forschung über Async und erwarte und derzeit etwas süchtig danach. Also konnte ich nicht aufhören, diesen zu beantworten.

prüfen eine kleine Probe aus, unter:

XAML-Code:

<Grid > 
    <Button x:Name="Button1" Content="Click Me" Width="88" Height="44" Click="Button1_Click"/> 
</Grid> 

-Code Behind:

private async void Button1_Click(object sender, RoutedEventArgs e) 
{ 
    Button1.Background = Brushes.Red; 
    Button1.Content = "Clicked State"; 
    await Task.Delay(8000); 
    Button1.Background = Brushes.Transparent; 
    Button1.Content = "Click Me"; 
} 

Nun lassen Sie mich erklären, was passiert, ihr e:

  1. Wenn die Schaltfläche geklickt wird, wird es von der Asynchron-Schaltfläche geklickt Ereignishandler Button1_Click ein.

  2. Die Farbe der Schaltfläche wird in Rot geändert und der Inhalt wird in "Klickstatus" geändert.

  3. Jetzt können wir warten auf Task.Delay (8000), dh die Ausführung der Funktion wartet jetzt auf die Aufgabe zu beenden, die von 8 Sekunden verzögert wird. Die Ausführung kehrt zum Hauptthread der Benutzeroberfläche zurück und Ihre Benutzeroberfläche ist immer noch reaktionsfähig.

  4. Nachdem 8 Sekunden abgeschlossen ist, wird ein freier Thread aus dem Thread-Pool erneut mit der Ausführung des Rests der Methode beginnen, nachdem er gewartet hat.

  5. Die Schaltfläche wurde in die Standardhintergrundfarbe geändert und der Inhalt wird in "Click Me" geändert, was der Standardinhalt war.

Hoffnung, das hilft.

+0

Das ist genau das, was ich gesucht habe! Vielen Dank. – student96

+0

Gerne helfen :) – ViVi

Verwandte Themen