2010-03-19 10 views
0

Veuillez vous reporter à ce champ http://www.charlespetzold.com/blog/2009/10/Using-Text-Outlines-in-Silverlight.html Le contrôle de formatage est une forme qui aide à générer la forme du texte avec la géométrie appropriée. Je voudrais faire en sorte que ce contrôle agisse comme une zone de texte avec des curseurs et des fonctionnalités comme la saisie depuis le clavier. À l'heure actuelle, j'utilise une zone de texte invisible avec un contrôle de texte formaté pour agir comme ça. Mais la position du curseur crée toujours un problème lorsque la taille du texte n'est pas égale à la taille du texte rendu en tant que forme.Comment créer une forme agissant comme une zone de texte?

Quelqu'un peut-il montrer le chemin pour y parvenir?

Répondre

0

Eh bien, j'ai construit une syntaxe en mettant en surbrillance la zone de texte en utilisant la méthode que vous décrivez. En fait, au début je voulais tout reconstruire aussi, mais je pensais: je dois construire les fonctionnalités du curseur, la brosse de sélection, gérer beaucoup d'événements différents, comme la sélection avec la souris ou le clavier, la suppression, copier/couper/coller etc etc ...

Cela fait beaucoup de travail, et les utilisateurs de Windows sont utilisés pour sélectionner du texte dans des zones de texte par exemple, donc cette implémentation complexe ne peut pas être laissée inappliquée. Nous devons suivre quelques conseils de Microsoft sur la façon dont une zone de texte doit se sentir.

En fait, je pense que la construction d'une nouvelle zone de texte à partir de rien n'est pas la bonne solution. Je vous suggère de continuer sur votre méthode actuelle. Si vous avez différentes polices dans la même zone de texte, utilisez un RichTextBox et gérez les modifications de police dans la zone de texte ainsi que dans le texte mis en forme.

En outre, une bonne réflexion à implémenter consiste à dessiner uniquement le texte visible avec le texte formaté (mais seulement si l'utilisateur peut écrire plusieurs centaines de lignes de texte).

Questions connexes