Wie Sie eine wpf-countdown-timer?
Ich möchte die wpf-countdown-timer, die das Ergebnis anzeigen als hh:mm:ss in die textbox, ich wäre dankbar für jeder Hilfe.
InformationsquelleAutor user2419978 | 2013-05-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
DispatcherTimer
Klasse (msdn).Dauer der Zeit, die Sie halten können
TimeSpan
Struktur (msdn).Wenn Sie möchten, dass die Formatierung
TimeSpan
zuhh:mm:ss
Sie sollten aufrufenToString
Methode, die mit "c" - argument (msdn).Beispiel:
XAML:
Code-behind:
InformationsquelleAutor kmatyaszek
Es ist nichts falsch mit der Verwendung
DispatcherTimer
für diesen Zweck. Jedoch, IMHO die neueren TPL-basierteasync
/await
Paradigma macht code leichter zu Lesen und zu schreiben. Es ist auch besser immer gutes MVVM-Praktiken für WPF-Programme, als vielmehr um UI-element Werte direkt aus dem code-behind.Hier ist ein Beispiel für ein Programm, implementiert einen countdown-timer, wie beschrieben in der Frage, aber mit diesen modernen Verfahren...
View-Modell ist natürlich, wo der Großteil der interessante code-wohnt, und sich auch dort die Hauptsache ist, die einzige Methode
_StartCountdown()
, die sich um die eigentliche countdown:ViewModel.cs:
Wie bereits angemerkt in den Kommentaren, die oben wird funktionieren, aber wenn Sie wollen eine bestimmte Ausgabe, es ist nützlich, um
IValueConverter
Implementierungen passen Sie die Ausgabe, um den Anzug Benutzer-spezifischen Bedürfnisse. Hier sind einige Beispiele von denen:UtcToLocalConverter.cs:
TimeSpanRoundUpConverter.cs:
Und natürlich auch ein paar XAML zum definieren der UI (wo keines der UI-Elemente haben Namen, noch die code-behind-müssen Zugang zu allen von Ihnen explizit):
MainWindow.xaml:
InformationsquelleAutor Peter Duniho