Como modificar o tamanho ou a colocação 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 SizeMode propriedade nele para:

  • Alinhe o canto superior esquerdo da imagem com o canto superior esquerdo do controle

  • Centralize a imagem no controle

  • Ajuste o tamanho do controle para se adaptar à imagem exibida

  • Alongue qualquer imagem exibida para se ajustar ao controle

Ampliar uma imagem (especialmente em formato bitmap) pode causar perda na qualidade. Metarquivos, que são listas de instruções gráficas para desenho de imagens em tempo de execução, são mais adequados para ampliar do que os bitmaps.

Para definir a propriedade SizeMode em tempo de execução

  1. 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 ao tamanho do controle.

    No exemplo abaixo, o caminho definido para o local da imagem é a pasta Meus Documentos. Isso acontece porque presumimos que a maioria dos computadores rodando o sistema operacional Windows vai incluir este diretório. Isso também permite que usuários com níveis mínimos de acesso ao sistema executem com segurança o aplicativo. O exemplo abaixo pressupõe um formulário com um PictureBox controle 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"));  
       }  
    

Confira também