2010-04-06 7 views
1

Ok, j'ai le problème suivant dans Silverlight. J'ai un contrôle avec 2 colonnes. Sur la gauche est un panneau de pile avec des numéros de ligne et sur la droite est un textBox. Donc, quand j'écris dans textBox sans retour à la ligne, je peux simplement créer le bon nombre de chiffres sur la gauche, parce que je cherche '\ r' dans le texte. Mais lorsque je l'active, je n'ai aucun contrôle sur le nombre de lignes dans textBox.Silverlight 3 - Contrôle sur l'habillage dans TextBox

Existe-t-il un moyen d'obtenir ce compte? Ou un moyen de savoir quelle ligne dans textBox va envelopper?

J'espère que vous pouvez comprendre ce que j'essaie de faire.

Répondre

0

Il y a une manière de faire ceci. Vous pouvez simuler l'opération de retour à la ligne en arrière-plan en utilisant un TextBlock. Voici un bon lien de la solution complète à ce problème.

Extended TextBox control with MaxLines property

0

N'est-il pas possible de créer vos éléments dans le code avant qu'ils ne soient transmis à la vue. Cela vous permettrait de lier une liste d'éléments à une liste et de les styler comme vous le souhaitez.

+0

Oui je les crée en code, parce que je connais le nombre de lignes dans textBox. Mais quand j'active l'habillage, de nouvelles lignes sont créées à cause de cela et je ne peux plus obtenir le nombre correct. – Gapipro

0

Vous devez utiliser un convertisseur de valeur pour compter le nombre de caractères/lignes, puis découper ce nombre si vous le souhaitez. Sauf si vous utilisez une largeur fixe, vous ne pouvez pas vraiment compter ou calculer en avance la taille, puisque chaque application peut être affichée différemment (en raison de l'option de dimensionnement différente). Il y a two great sample chapters sur Windows Phone et Silverlight pour Windows Phone sur le site LearningWindosPhone.com. Il ya beaucoup de Windows Phone Trainng material, et n'oubliez pas le Windows Phone Develoeprs Blog

+0

Hm, si j'utilise une police qui a tous les caractères de même largeur, je peux calculer le nombre maximum si caractères/ligne même si j'ai textBox dynamique. Est-ce exact? – Gapipro

0

Oui, il est un moyen d'obtenir le nombre de lignes occupées par le texte dans la zone de texte. Ce n'est pas si simple que ça, parce que vous devez simuler le comportement du mot wrap afin de compter/prédire le nombre de lignes générées à la suite d'un retour à la ligne. J'ai le solution described here en détail.

Questions connexes