begin process at 2012 02 07 09:24:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > COMMENT ÉCRIRE DU TEXTE VERTICAL ?

COMMENT ÉCRIRE DU TEXTE VERTICAL ?


 Information sur la source

Note :
8 / 10 - par 2 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Source .NET ( DotNet ) Classé sous :graphique, ecrire, gdi, vertical, text Niveau :Débutant Date de création :17/10/2005 Vu :26 040

Auteur : zigxag

Ecrire un message privé
Site perso
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Il est souvent demandé, lorsque des histogrammes doivent être affichés, d’écrire du texte verticalement. Or, rien n’est prévu dan le framework pour faire cela ! La seule solution est de créer une image du texte à afficher, puis de la faire pivoter…
Pour écrire du texte verticalement, la seule solution est de transformer ce texte en image et de faire pivoter cette image de 90°, comme ceci :

Source

  • string message = "Mon texte à afficher";
  • // Création de l'image
  • Bitmap b = new Bitmap(1, 1);
  • Font f = new Font("Arial", 8);
  • Graphics graphics = Graphics.FromImage(b);
  • int width = (int) graphics.MeasureString(message,f).Width;
  • int height = (int) graphics.MeasureString(message,f).Height;
  • b = new Bitmap(b, new Size(height, width));
  • graphics = Graphics.FromImage(b);
  • graphics.Clear(Color.White);
  • graphics.SmoothingMode = SmoothingMode.HighQuality;
  • graphics.SmoothingMode = SmoothingMode.AntiAlias;
  • // Création du texte de l'image
  • StringFormat sf = StringFormat.GenericTypographic;
  • sf.FormatFlags = StringFormatFlags.DirectionVertical; // Position verticale
  • graphics.DrawString(message, f, new SolidBrush(Color.FromArgb(62, 62, 62)), 0, 0, sf);
  • graphics.Flush();
  • // Enregistrement de l'image
  • string directory = System.Configuration.ConfigurationSettings.AppSettings["installPath"];
  • message = message.Replace(" ", "");
  • directory += @"\Images\Generated\" + message + ".gif";
  • b.Save(directory, System.Drawing.Imaging.ImageFormat.Gif);
string message = "Mon texte à afficher";

// Création de l'image
Bitmap b = new Bitmap(1, 1);
Font f = new Font("Arial", 8);
Graphics graphics = Graphics.FromImage(b);			
int width = (int) graphics.MeasureString(message,f).Width;
int height = (int) graphics.MeasureString(message,f).Height;
b = new Bitmap(b, new Size(height, width));
graphics = Graphics.FromImage(b);
graphics.Clear(Color.White);
graphics.SmoothingMode = SmoothingMode.HighQuality;
graphics.SmoothingMode = SmoothingMode.AntiAlias;
			
// Création du texte de l'image
StringFormat sf = StringFormat.GenericTypographic;
sf.FormatFlags = StringFormatFlags.DirectionVertical;	// Position verticale
graphics.DrawString(message, f, new SolidBrush(Color.FromArgb(62, 62, 62)), 0, 0, sf);
graphics.Flush();

// Enregistrement de l'image
string directory = System.Configuration.ConfigurationSettings.AppSettings["installPath"];
message = message.Replace(" ", "");
directory += @"\Images\Generated\" + message + ".gif";
b.Save(directory, System.Drawing.Imaging.ImageFormat.Gif);

 Conclusion

L’image est créée en fonction du texte à écrire. Cette image doit ensuite être enregistrée sur le disque dur du serveur, ce qui nécessite de donner les bons droits d’accès à ce répertoire.


 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) WINDOWSGADGET LIKE par Frelon
Source avec Zip Source avec une capture Source .NET (Dotnet) USERCONTROL PLANNING / SEMAINE / JOURNÉE par yohan49
Source avec Zip Source avec une capture Source .NET (Dotnet) TEMPLATE MATCHING ET RECONNAISSANCE D'OBJETS AVEC OPENCV (EM... par boutemine
Source .NET (Dotnet) CALCULE D'UNE EXPRESSION MATHEMATIQUE PAR COMPILATION par yohan49
Source avec Zip Source avec une capture Source .NET (Dotnet) CALENDRIER TACTILE, SOUS FORME DE ROUES par Robert33

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) EDITEUR DE TEXT NOTE PAD par chouatmohamed
Source avec Zip Source avec une capture Source .NET (Dotnet) [WPF] RICH TEXT FORMAT par MasterShadows
Source avec Zip Source avec une capture Source .NET (Dotnet) PANEL IRC AVEC MARGE DEPLACABLE ET BACKGROUND IMAGE par yohan49
Source avec Zip Source avec une capture Source .NET (Dotnet) PIXEL SHADER - CRÉATION, UTILISATION, ET BINDING par yoannd
Source avec Zip Source avec une capture Source .NET (Dotnet) GRAPHIQUE TYPE SECTEUR par Yxion

Commentaires et avis

Commentaire de badrbadr le 18/10/2005 17:41:21

interresante ta méthode, mais je pense bien que le framework .net a prevu qqch pour ces situations-la, je m'explique:

voici une fonction que j'avais trouver sur msdn qui ecrit du texte vertical:

private void DrawVerticalText()
{
   System.Drawing.Graphics formGraphics = this.CreateGraphics();
   string drawString = "Sample Text";
   System.Drawing.Font drawFont = new System.Drawing.Font("Arial", 16);
   System.Drawing.SolidBrush drawBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Black);
   float x = 150.0f;
   float y = 50.0f;
   System.Drawing.StringFormat drawFormat = new System.Drawing.StringFormat(StringFormatFlags.DirectionVertical);
   formGraphics.DrawString(drawString, drawFont, drawBrush, x, y, drawFormat);
   drawFont.Dispose();
   drawBrush.Dispose();
   formGraphics.Dispose();
}

tout se joue dans le format du string
System.Drawing.StringFormat drawFormat = new System.Drawing.StringFormat(StringFormatFlags.DirectionVertical);
avec le flag StringFormatFlags.DirectionVertical

en tout cas, ton code nous apprend a faire d autre chose comme par exemple comment dessiner ou ecrire dans une image.

bonne contuniation

Commentaire de bucherb le 04/11/2005 11:05:21

Tu peux aussi utiliser tourner ton objet Graphics par la propriété "Transform" en lui passant un objet Matrix (qui contient tout ce qu'il faut pour faire des transformations), puis faire ton DrawString normalement et ensuite rétablit ton Graphics en faisant ResetTransform... Ca a l'avantage de pouvoir écrire du texte selon n'importe quel angle.

Commentaire de ahaccoun le 12/09/2008 20:14:17

j'ai fait comme ceci:

private static void drawVerticalString(string text, Point p, Font font, Form myForm)
        {
            System.Drawing.Drawing2D.GraphicsPath gp = new System.Drawing.Drawing2D.GraphicsPath();
            gp.AddString(text, font.FontFamily, (int)font.Style, font.Size+4, p, StringFormat.GenericTypographic);
            System.Drawing.Drawing2D.Matrix m = new System.Drawing.Drawing2D.Matrix();
            m.RotateAt(270, p, System.Drawing.Drawing2D.MatrixOrder.Append);
            gp.Transform(m);
            myForm.CreateGraphics().FillPath(new SolidBrush(Color.Black), gp);
        }

Commentaire de gillardg le 14/10/2008 01:39:26

salut,
3 méthode pour le prix d'une seule ,
merci

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Texte editeur [ par rintchu ] Salut, je voudrais creer un text editeur mélangé avec un treeview, un peu ce que l'on a quand on programme avec Microsoft .Net 2003 ( on peut ecrire e gdi+ et crystal report [ par matmat86 ] Bonjour,j'ai créé un graphique a l'aide de gdi+ et il m'a été demandé de permettre l'impression de ce graphique.J'ai entendu parler de Crystal Report ecrire dans une panel [ par fayrous ] Salut tout le monde , dans mon form j'ai un textBox ,un button et une panel je veux afficher le texte dans la panel et voila le code private void but Ecrire dans un panel en GDI [ par iow4 ] Bonjour, J'utilise le framework 2 avec VC#.J'ai inseré sur une winform un panel et j'aimerais tracer un rectangle par dessus Seulement lorsque le rect achever ce type deffet avec GDI+ C++ [ par realhabs ] En explorant les possibilites des shader HLSL, je suis tombe sur un viewer directX Hamana graphics viewer : http://miyano.s53.xrea.com/bon ce au japon Ecrire sur un fichier XML stocké sur un serveur FTP [ par saitec ] Bonjour,J'ai un petit soucis avec visual C# 2005Mon probleme est le suivant :Je voudrais pouvoir ajout&#233; des donn&#233;es et donc &#233;crire dire SelectedText dans un richtextbox [ par kiboumz ] Bonjour,j'essaie de faire dans mon programme une fonction de recherche qui sélectionne (highlight), dans le richtextbox, le texte recherché, mais je n Comment afficher un texte dans une text box alors que l'on exexute du code dans un thread? [ par Johnfoo ] Bonjours,Comment afficher un texte dans une text box alors que l'on exexute du code dans un thread?Exemple:privatevoid</f Insert ne faisant rien [ par psykostik ] Bonjour, je réalise un programme qui insere des données dans une base sql. ma requete est la suivant try { progressbar + text [ par laurentzic ] salutje voudrait afficher du texte dans ma progressbar est ce possible.si oui comment faire?merci


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,824 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales