2008-11-06 6 views
0

Dans mon application Silverlight, je souhaite qu'une zone de texte multiligne soit développée à chaque fois que l'utilisateur clique sur Entrée.Comment calculer la hauteur correcte pour une zone de texte à expansion automatique dans Silverlight?

La partie difficile est de savoir comment calculer la bonne hauteur en fonction du nombre de lignes de texte.

J'ai essayé ce qui suit, mais la zone de texte devient trop petit:

box.Height = box.FontSize*lineCount + box.Padding.Top + box.Padding.Bottom + box.BorderThickness.Top + box.BorderThickness.Bottom; 

Qu'est-ce que je manque ici? Ou peut-être que cela peut être fait automatiquement?

Merci, Jacob

Edit: Je soupçonne que le problème dans la propriété FontSize (-t-il utiliser une autre unité de taille?)

Répondre

3

Cela semble être la façon dont la zone de texte fonctionne sur la boîte. Assurez-vous simplement de définir le AcceptsReturn = "True" sur la zone de texte. Assurez-vous également de ne pas définir la hauteur de la zone de texte afin qu'elle soit calculée pour vous.

0

Le TextBox déclenchera un événement SizeChanged et définira également la propriété ActualHeight.

Je ne pense pas que c'était le cas dans Silverlight 2, quand je devais utiliser un TextBlock avec la même police, régler le remplissage à 4, et définir le même texte, et obtenir le ActualHeight de cela.

Questions connexes