Ändern der Größe von Labels
Frage
Ich habe ein Diagramm in WPF mit vielen Etikett. Der Text auf diesen Etiketten wird dynamisch geladen und Änderungen vorbehalten. Wenn ich die Breite nur auf auto gesetzt, dann überlappen sich diese Markierungen können, was der Text nicht lesbar macht.
Die Chartunterstützung mehrerer Größen, so dass, wenn es größer wird, dann sind die Stäbe re Größe und es gibt mehr Platz für Text. Jetzt möchte ich den Text an den Raum anzupassen, die zur Verfügung steht. Wenn es zu klein wird, will ich nicht mehr das Etikett angezeigt werden (ein Tooltip verfügbar ist, so noch der Benutzer die erforderlichen Informationen erhält). Betrachten Sie die Zeichenfolge „Fall 1, bla bla“, gibt es wahrscheinlich nicht genug Platz ist, um die gesamte Zeichenfolge angezeigt werden, sondern nur das erste Wort. In diesem Fall mag ich die Zeichenfolge sein „Fall 1 ..“, mit .. darauf hinweisen, dass es im Tooltip einige weiteren Informationen.
Ich kann die Länge für die Zeichenfolge bestimmen. Aber wie kann ich den Raum ein einzelner Buchstabe nehmen bestimmen? Natürlich könnte ich auch wieder nur die Etikettengröße, aber dann wäre es nur die Zeichenfolge überall die hilfreich wahrscheinlich nicht für den Benutzer ist abgeschnitten (und sieht hässlich).
Irgendwelche Ideen?
Lösung
Wenn Sie Textblocks anstelle von Etiketten verwenden können, dann haben sie eine TextTrimming Eigenschaft, die entweder auf die nächste Zeichen für Sie tun dies oder das nächste Wort.
Während Sie mit der TextTrimming Eigenschaft glücklich scheinen, ich diese bearbeiten würde hinzufügen, dass das TextBox-Steuerelement hat ein
Andere Tipps
Nicht ein Experte in WPF, aber ich würde denken, dass Sie dies in Code würden tun müssen, anstatt XAML.
Starten Sie durch die tatsächliche Pixelbreite des verfügbaren Raums für den Text zu erhalten. Schauen Sie sich den Zeichensatz usw. Punktabstand auf dem XAML-Frontend genutzt und von dort mit der Pixelbreite pro Zeichen erforderlich berechnen.
Sie können auch als auch Größen wie die Verringerung der Etikettenlänge sehen das Zeichen an zu ändern.