Canvas not supported
Canvas not supported
Suchen
Bookmark
Canvas not supported
Shine Effekt
Direkt zum Seiteninhalt

Hauptmenü:

HTML Uhr in C#

 

Autor:

Oscar Kohler

Version:

0.11

Level:

Einfach

Sprache:

C#


 
Haftungsausschluss / Disclaimer
Kontakt / Contact
Drucken / Print


Oft benötigt man mal schnell eine Möglichkeit Daten und Texte ohne grossen Aufwand formatiert auf dem Bildschirm auszugeben.
Hier führen natürlich viele Wege nach Rom ! Eine sehr simple Lösung besteht darin, die Daten im HTML Format auszugeben.

HTML Template in C#


Die Idee dahinter ist einfach:

  • HTML Template erstellen,

  • für alle Daten Platzhalter im Template einsetzen,

  • HTML Template in den Speicher laden,

  • Platzhalter im Speicher mit Daten ersetzen,

  • Dokument in einem WebBrowser Objekt anzeigen.


Die grossen Vorteile liegen in der Einfachheit und der Trennung von Daten und Anzeige.
Für komplexe Oberflächen mit Eingabefeldern, Buttons, ... ist es wohl weniger geeignet, aber gerne verwende ich die Methode für benutzerfreundliche Assistenten.  Möglichkeit zur Trennung von Programm, Design und Übersetzung inklusive.

Wie spät, bitte ?

Als Beispiel habe ich eine kleine Uhr gewählt, die zeigt, dass auch ein bisschen Dynamik kein Problem darstellt.
Der Example Code ist extrem einfach gehalten und dient nur dem Prinzip.

C# Html Template


C# Html TemplateZuerst erstellen wir ein simples HTML Template von Hand oder mit einem HTML Editor, das wir mit Platzhaltern z.B.: %HH%:%MM%.%SS% füllen.
Dieses Template speichern wir anschliessend als html file ab.

(Mausklick zeigt das Bild links in Vollgrösse an.)


C# Form


C# FormAnschliessend erstellen wir eine Form, die wir mit einem WebBrowser- sowie einem Timer-Objekt bestücken.

-> Das WebBrowser-URI setzen wir auf eine gültige Seite, z.B.: einen Intro Text.
-> Den Timer deaktivieren wir.

(Mausklick zeigt das Bild links in Vollgrösse an.)



C# Code


Zuerst lesen wir das HTML Template z.B.: mit StreamReader, als String in den Speicher:


MSDN: StreamReader


  • Ging soweit alles Gut, setzen wir den Timer auf 1000ms und starten in anschliessend:


...
timer.Interval = 1000;
timer.Enabled = true;
timer.Start();
...

timer_Tick() Event

Dieser Callback wird im Interval von einer Sekunde aufgerufen, wie wir es dem Timer angegeben haben.

  • Hier erstellen wir zuerst ein neues Dokument:


HtmlDocument htmlDoc = webBrowser.Document.OpenNew(true);

MSDN: webBrowser.Document.OpenNew(true)


  • Anschliessend füllen wir die Platzhalter mit Daten:


...
string page = _template;
page = page.Replace("%HH%", DateTime.Now.Hour.ToString());
page = page.Replace("%MM%", DateTime.Now.Minute.ToString("d2"));
...

Die Methode "Replace" ist zwar nicht die optimalste, aber zumindest hier die einfachste Wahl.
Wollen wir in der Ausgabe führende Nullen, so geben wir einfach einen Formatstring in der "ToString" Methode an.
"d2" bedeutet hier: auf 2 Dezimalstellen formatieren.

  • Letztendlich schreiben wir das geänderte Dokument:


...
htmlDoc.Write(page);
...

Wie sieht's aus ?

C# Html Resultat




SourceCode


 
Kein Kommentar
 
Letzte Änderung: 03.02.2015
button Canvas not supported button
Zurück zum Seiteninhalt | Zurück zum Hauptmenü