Laden...

Eine X-/Y-Achse dynamisch beschriften

Erstellt von Doltsche vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.562 Views
D
Doltsche Themenstarter:in
249 Beiträge seit 2009
vor 10 Jahren
Eine X-/Y-Achse dynamisch beschriften

Hallo Community

Bereits vor einem Jahr war ich damit beschäftigt, ein Chart-Control mit Silverlight zu realisieren. Knifflig wurde es beim dynamischen Beschriften der Achsen. Offenbar ist es nicht unbedingt die optimale Lösung, die Grösse des gerenderten Achsenlabels zu ermitteln und anschliessend zu berechnen, wie viele von diesen Labels auf einer Achse mit einer gegebenen Länge Platz haben. Zumal gerade in Silverlight das Ermitteln der Dimensionen eines gerenderten Labels/Strings nur mit Basteln während dem Layoutpass möglich ist. Meine Logik sagt mir deshalb, dass es auch andere Lösungsansätze geben muss.

Da ich wieder mit eigenen Chart-Controls konfrontiert bin (Schulprojekt, Funktionsgraph), suche ich nach einer gängigen Methode auf dynamische Weise zu bestimmen, wie viele Labels ich auf einer Achse zur Beschriftung verteilen kann. Das Ganze soll dabei Sprachunabhängig sein. Es geht mir um den generellen Lösungsansatz.
*Eine Möglichkeit wäre zum Beispiel eine vordefinierte Grösse für alle Labels. In diesem Fall wird es aber problematisch mit einer dynamischen Schriftgrösse. *Eine andere Idee wäre, auf gut Glück Labels zu platzieren, und diejenigen, die sich überlappen zu entfernen. Das würde aber wiederum zwei Renderdurchläufe benötigen.

Welche Ideen habt ihr zur Lösung dieses Problems?

Gruss

Samuel

5.657 Beiträge seit 2006
vor 10 Jahren

Hi Doltsche,

ich würde zu deinem ersten Ansatz tendieren ("die Grösse des gerenderten Achsenlabels zu ermitteln und anschliessend zu berechnen, wie viele von diesen Labels auf einer Achse mit einer gegebenen Länge Platz haben"). Klingt für mich am einfachsten und logischsten, und ich hab es auch schonmal bei einem ähnlichen Control so umgesetzt. Warum ist das deiner Meinung nach keine optimale Lösung?

Christian

Weeks of programming can save you hours of planning