Como modificar o tamanho ou o posicionamento de uma imagem em tempo de execução (Windows Forms)
Se você usar o controle Windows Forms PictureBox em um formulário, poderá definir a propriedade SizeMode nele como:
Alinhar o canto superior esquerdo da imagem com o canto superior esquerdo do controlo
Centralizar a imagem dentro do controle
Ajuste o tamanho do controle para se ajustar à imagem que ele exibe
Estique qualquer imagem exibida para se ajustar ao controle
Esticar uma imagem (especialmente uma em formato bitmap) pode produzir uma perda na qualidade da imagem. Metaarquivos, que são listas de instruções gráficas para desenhar imagens em tempo de execução, são mais adequados para alongamento do que bitmaps.
Para definir a propriedade SizeMode em tempo de execução
Defina SizeMode como Normal (o padrão), AutoSize, CenterImageou StretchImage. Normal significa que a imagem é colocada no canto superior esquerdo do controle; Se a imagem for maior que o controle, suas bordas inferior e direita serão cortadas. CenterImage significa que a imagem está centralizada dentro do controle; Se a imagem for maior que o controle, as bordas externas da imagem serão cortadas. AutoSize significa que o tamanho do controle é ajustado ao tamanho da imagem. StretchImage é o inverso, e significa que o tamanho da imagem é ajustado para o tamanho do controle.
No exemplo abaixo, o caminho definido para o local da imagem é a pasta Meus Documentos. Isso é feito, porque você pode assumir que a maioria dos computadores que executam o sistema operacional Windows incluirá esse diretório. Isso também permite que usuários com níveis mínimos de acesso ao sistema executem o aplicativo com segurança. O exemplo abaixo assume um formulário com um controle PictureBox já adicionado.
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")); }
Ver também
.NET Desktop feedback