Compartilhar via


Como modificar o tamanho ou o posicionamento de uma imagem em tempo de execução (Windows Forms)

Se você usar o controle PictureBox do Windows Forms em um formulário, poderá definir a propriedade SizeMode nele como:

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

  • Centralizar a imagem dentro do controle

  • Ajustar o tamanho do controle para ajustar a imagem exibida

  • Estique qualquer imagem exibida para que se ajuste ao controle

Alongar uma imagem (especialmente uma no formato bitmap) pode produzir uma perda na qualidade da imagem. Os metafiles, 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 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 recortadas. 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 recortadas. AutoSize significa que o tamanho do controle é ajustado para o 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, pois 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 do sistema executem o aplicativo com segurança. O exemplo a seguir pressupõe um formulário com um controle de 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"));  
       }  
    

Consulte também