IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Zoom Picture mais pas le texte par dessus


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 117
    Points : 53
    Points
    53
    Par défaut Zoom Picture mais pas le texte par dessus
    bonjour
    j'utilise une from avec la méthode onPaint pour afficher une image et du texte, mais lorsque je zoom, il zoom les 2 ( image et texte );
    Or, je soushiate simplement zoomer mon image. C'est pourquoi j'ai ajouté la ligne
    e.Graphics.ScaleTransform(1,1);

    Mais cela ne marche pas.
    Pouvez vous m'aider?
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    protected override void OnPaint(PaintEventArgs e)
    {
    e.Graphics.ScaleTransform((float)zoom, (float)zoom);
    e.Graphics.DrawImage(img, moving);
    Rectangle displayRect = new Rectangle(5, 5,
                    ClientSize.Width - 10, ClientSize.Height - 10);
    e.Graphics.ScaleTransform(1,1);
    e.Graphics.DrawString(text, infoFont, myBrush, rect, sf);
    }

  2. #2
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour

    il faut utiliser un conteneur graphique pour restreindre la mise à l'echelle aux objets graphiques impliqués dans celle-ci...
    Les conteneurs peuvent même être nombreux et imbriqués...

    ton code revu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    protected  override void OnPaint(PaintEventArgs e)
            {
                Graphics gr = e.Graphics;
                if (img == null) return;
                gr.ResetTransform();
                //debut du conteneur graphique
                GraphicsContainer conteneur = e.Graphics.BeginContainer();
                gr.ScaleTransform(zoom, zoom);
                gr.DrawImage(img, new PointF(0, 0));
                //fin du conteneur graphique
                gr.EndContainer(conteneur);
     
                gr.ResetTransform();
                Font infoFont = new Font("times new roman", 16.0f);
                SolidBrush myBrush=new SolidBrush(Color.DarkBlue );
     
                gr.DrawString(theText, infoFont, myBrush, new PointF(10,10) );
     
                infoFont.Dispose();
                myBrush.Dispose();
            }
    bon code...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher zone de texte par dessus un sous-formulaire
    Par AlvinTheMaker dans le forum VBA Access
    Réponses: 4
    Dernier message: 23/07/2009, 21h26
  2. comment centrer un from/fieldset mais pas le texte
    Par juju03 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 04/08/2008, 10h06
  3. transparence du li mais pas le texte
    Par Invité dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 07/10/2006, 12h25
  4. Réponses: 5
    Dernier message: 19/03/2006, 08h39
  5. [HTML][CSS] Ecrire du texte par dessus un tableau.
    Par Joad dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 14/04/2005, 02h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo