86 votes

Comment calculer la largeur d'un bloc de texte WPF pour une taille de police et des caractères connus ?

Disons que j'ai TextBlock avec du texte "Un texte" y taille de la police 10.0 .

Comment puis-je calculer le montant approprié TextBlock largeur ?

0 votes

La question a déjà été posée, et cela dépend aussi de la police.

0 votes

Vous pouvez également obtenir la largeur réelle à partir de ActualWidth .

2 votes

L'utilisation de TextRenderer devrait également fonctionner pour WPF : stackoverflow.com/questions/721168/

0voto

Mikhail Points 1033

J'utilise celui-ci :

var typeface = new Typeface(textBlock.FontFamily, textBlock.FontStyle, textBlock.FontWeight, textBlock.FontStretch);
var formattedText = new FormattedText(textBlock.Text, Thread.CurrentThread.CurrentCulture, textBlock.FlowDirection, typeface, textBlock.FontSize, textBlock.Foreground);

var size = new Size(formattedText.Width, formattedText.Height)

-2voto

Setheron Points 674

J'ai trouvé ça pour vous :

Graphics g = control.CreateGraphics();
int width =(int)g.MeasureString(aString, control.Font).Width; 
g.dispose();

24 votes

Cette approche spécifique ne s'applique qu'à WinForms.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X