Поделиться через


Как изменить размер или размещение рисунка в процессе выполнения (Windows Forms)

Если вы используете элемент управления windows Forms PictureBox в форме, вы можете задать для него свойство SizeMode:

  • Выровняйте верхний левый угол рисунка с верхним левым углом элемента управления.

  • Центрирование рисунка в элементе управления

  • Настройте размер элемента управления в соответствии с отображаемым рисунком.

  • Растяните любое изображение, чтобы оно соответствовало элементу управления

Растяжение рисунка (особенно в формате растрового изображения) может привести к потере качества изображения. Метафайлы, которые являются списками графических инструкций для рисования изображений во время выполнения, лучше подходят для растяжения, чем растровые изображения.

Установка свойства SizeMode во время выполнения

  1. Задайте для SizeMode значение Normal (по умолчанию), AutoSize, CenterImageили StretchImage. Normal означает, что изображение помещается в левый верхний угол элемента управления; Если изображение больше элемента управления, его нижние и правые края обрезаются. CenterImage означает, что изображение находится в центре элемента управления; Если изображение больше элемента управления, внешние края рисунка обрезаются. AutoSize означает, что размер элемента управления настраивается на размер изображения. StretchImage является обратным и означает, что размер изображения настраивается на размер элемента управления.

    В приведенном ниже примере путь, заданный для расположения изображения, — папка "Мои документы". Это делается, так как можно предположить, что большинство компьютеров под управлением операционной системы Windows будут включать этот каталог. Это также позволяет пользователям с минимальным уровнем доступа к системе безопасно запускать приложение. В приведенном ниже примере предполагается, что форма с элементом управления PictureBox уже добавлена.

    Private Sub StretchPic()  
       ' Stretch the picture to fit the control.  
       PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage  
       ' Load the picture into the control.  
       ' You should replace the bold image
       ' in the sample below with an icon of your own choosing.  
       PictureBox1.Image = Image.FromFile _  
       (System.Environment.GetFolderPath _  
       (System.Environment.SpecialFolder.Personal) _  
       & "\Image.gif")  
    End Sub  
    
    private void StretchPic(){  
       // Stretch the picture to fit the control.  
       PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;  
       // Load the picture into the control.  
       // You should replace the bold image
       // in the sample below with an icon of your own choosing.  
       // Note the escape character used (@) when specifying the path.  
       PictureBox1.Image = Image.FromFile _  
       (System.Environment.GetFolderPath _  
       (System.Environment.SpecialFolder.Personal) _  
       + @"\Image.gif")  
    }  
    
    private:  
       void StretchPic()  
       {  
          // Stretch the picture to fit the control.  
          pictureBox1->SizeMode = PictureBoxSizeMode::StretchImage;  
          // Load the picture into the control.  
          // You should replace the bold image
          // in the sample below with an icon of your own choosing.  
          pictureBox1->Image = Image::FromFile(String::Concat(  
             System::Environment::GetFolderPath(  
             System::Environment::SpecialFolder::Personal),  
             "\\Image.gif"));  
       }  
    

См. также