Поддерживать пропорции изображения?

Я использую pictureBox для показа изображений, полученных с сервера, но моя проблема в том, что в картинной коробке в компактном каркасе есть только три режима размера

StretchImage, Normal, CenterImage

картинки, которые я получаю, обычно больше по размеру, поэтому я должен использовать режим StrecthImage. Но затем сохраняется соотношение сторон, поэтому показанные изображения становятся искаженными.

Так что, в любом случае, выйти из этой проблемы?

13.10.2009 06:19:28
Я думаю, вы имеете в виду, что соотношение сторон "не поддерживается", верно?
Dan Rosenstark 13.10.2009 06:44:31
1 ОТВЕТ
РЕШЕНИЕ

наконец я нашел ответ на свой вопрос, который здесь -----

 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));

но перед этим сохраните режим размера окна изображения как stretchImage

3
13.10.2009 11:35:24