Практическое руководство. Изменение размера или размещения изображения во время выполнения (Windows Forms)
При использовании Windows Forms PictureBox элемента управления в форме, можно задать SizeMode свойства:
Выравнивание верхнего левого угла рисунка с верхнего левого угла элемента управления
Центрировать изображение в элементе управления
Размер элемента управления в соответствии с рисунка
Изменять размеры рисунка в соответствии с размерами элемента управления
Растяжение рисунка (особенно в формат точечного рисунка) может привести к ухудшению качества изображения. Метафайлы, в которых перечислены инструкции для создания изображений во время выполнения, лучше подходят для растягивания чем растровые изображения.
Чтобы задать свойство размеров во время выполнения
Задайте 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")); }