2009-10-13 5 views
1

J'utilise PictureBox pour afficher des images qui sont reçues du serveur, mais mon problème est que la boîte d'image dans le cadre compact ne comporte que trois modes TailleConserver le format d'une image?

StretchImage, Normal, CenterImage

les images que je reçois sont généralement plus en taille, donc je dois utiliser le mode StrecthImage. Mais alors le rapport d'aspect est maintenu de sorte que les images montrées deviennent déformées.

Alors, est-ce que c'est quand même leur raison de sortir de ce problème?

+1

Je pense que vous voulez dire que le rapport d'aspect " n'est pas maintenu, "non? –

Répondre

3

enfin je l'ai trouvé réponse à ma question qui est ici -----

float actualHeight = myImg.Height; 
float actualWidth = myImg.Width; 
float imgRatio = actualWidth/actualHeight; 
float maxRatio = (float)this.Width/this.Height; 

       if(imgRatio!=maxRatio) 
       { 
        if (imgRatio < maxRatio) 
        { 
         imgRatio = this.Height/actualHeight; 
         actualWidth = imgRatio * actualWidth; 
         actualHeight = this.Height; 
        } 
        else 
        { 
         imgRatio = this.Width/actualWidth; 
         actualHeight = imgRatio * actualHeight; 
         actualWidth = this.Width; 
        } 
       } 
pictureBox.Size=new Size((int)actualWidth,(int)actualHeight); 
pictureBox.Location = new Point((int)((this.Width - actualWidth)/2), (int)((this.Height - actualHeight)/2)); 

mais avant de le faire garder le mode de la taille de la zone d'image comme stretchImage

+0

espérons que cela aidera! –

Questions connexes