étiquettes redimensionnement
Question
J'ai un tableau en WPF avec beaucoup d'étiquettes. Le texte sur ces étiquettes est chargée dynamiquement et sujettes à changement. Si je mets la largeur juste auto, ces étiquettes peuvent se chevaucher, ce qui rend le texte illisible.
Le support graphique plusieurs tailles, donc si elle devient plus grande, puis les barres sont re taille et il y a plus d'espace pour le texte. Maintenant, je veux ajuster le texte à l'espace disponible. Si elle est trop petite, je ne veux pas afficher l'étiquette plus (une info-bulle est disponible, l'utilisateur obtient toujours les informations requises). Considérons la chaîne « Cas 1, bla bla », il n'y a probablement pas assez d'espace pour afficher la chaîne entière, mais juste le premier mot. Dans ce cas, je veux la chaîne à « Cas 1 .. », avec .. indiquant qu'il ya un peu plus d'informations dans l'info-bulle.
Je peux déterminer la longueur disponible pour la chaîne. Mais comment puis-je déterminer l'espace d'une seule lettre prendra? Bien sûr, je pourrais aussi simplement re la taille de l'étiquette, mais il serait tout simplement couper la chaîne partout qui est probablement pas utile pour l'utilisateur (et semble laid).
Toutes les idées?
La solution
Si vous pouvez utiliser TextBlocks au lieu d'étiquettes alors ils ont un TextTrimming propriété qui le fera pour vous soit le plus proche caractère ou le mot le plus proche.
Alors que vous semblez satisfait de la propriété TextTrimming, je vais modifier cette option pour ajouter que le contrôle TextBox a une
Autres conseils
Pas un expert en WPF, mais je pense que vous aurez besoin de le faire dans le code plutôt que XAML.
Commencez par obtenir la largeur réelle des pixels de l'espace disponible pour le texte. Ensuite, regardez le jeu de caractères, etc. utilisés pas de point sur la XAML extrémité avant et de calculer la valeur de la largeur de pixel requis par caractère.
Vous pouvez aussi regarder à changer le caractère tailles ainsi que la réduction de la longueur de l'étiquette.