-
Orientation du texte
Bonjour
Dans un Graphics, je dessine des images et du texte. Pour le texte j'utilise la méthode DrawString. Je veux pouvoir changer l'orientation de mon texte et pour cela je crée un objet StringFormat dont je modifie la propriété FormatFlags (StringFormatFlags::DirectionVertical) pour mettre mon texte à 90 degrés. Cependant il semble que cette méthode ne permette que 0 et 90 degrés.
Existe t-il une autre méthode qui permette d'arriver au résultat souhaité ?
-
Bonjour,
Pour écrire du texte orientable, tu peux utiliser ta propre police vectorielle pour tous les caracères, puis utiliser du code pour effectuer la rotation vectorielle des caractères avant de les afficher.
Sinon, utilise des images des caractères que tu fait pivoter avant de les réafficher.
-
Je te remercie pour ta réponse hélico 2, mais pour être totalement honète je n'y comprends rien. Peux tu le détailler un peu plus ?
Qu'appelles tu ma propre police vectorielle ?
Me suggères tu de dessiner le texte dans une bitmap et d'appliquer la rotation cette bitmap, puis d'ajouter cette bitmap comme une image dans ma page ?
-
Bonjour,
Une police vectorielle est une police où chaque caractère est simplement dessiné par des segments ou courbes. Il suffit après d'effectuer une rotation par calcul avec une matrice de rotation et une matrice pour l'échelle (agrandissement) dans le plan pour afficher le caractère correspond.
Une police non vectorielle est constitué de plusieurs images d'un même caractère, mais ayant subit une rotation pour chacune d'elles. Il faut plus de temps pour préparer ces images. La taille étant définie par un stretching.Cette méthode demande évidement d'avoir pour chaque image un cache ou masque pour ne pas effacer le fond et n'afficher uniquement que les pixels du caractère.
-
sinon, tu peux définir une matrice et utiliser RotateAt http://msdn2.microsoft.com/en-us/lib....rotateat.aspx
utiliser les méthodes de l'objet graphics : ScaleTransform, TranslateTransform, RotateTransform et DrawString pour écrire du texte
-
Merci à tous les deux
Je ne connaissais pas la classe Matrix et c'était exactement ce que je cherchais.