Compartir a través de


Cómo: Modificar el tamaño o la situación de una imagen en tiempo de ejecución (formularios Windows Forms)

Si usa el control PictureBox de Windows Forms en un formulario, puede establecer su propiedad SizeMode para hacer lo siguiente:

  • Alinear la esquina superior izquierda de la imagen con la esquina superior izquierda del control

  • Centrar la imagen dentro del control

  • Ajustar el tamaño del control para que quepa en él la imagen que muestra

  • Estirar cualquier imagen mostrada para ajustarse al control

Estirar una imagen (especialmente una con formato de mapa de bits) puede mermar la calidad de la imagen. Los metarchivos, que son listas de instrucciones de gráficos para dibujar imágenes en tiempo de ejecución, son más adecuados a la hora de estirar que los mapas de bits.

Para establecer la propiedad SizeMode en tiempo de ejecución

  1. Establezca SizeMode en Normal (valor predeterminado), AutoSize, CenterImage o StretchImage. Normal significa que la imagen se coloca en la esquina superior izquierda del control; si la imagen es mayor que el control, se recortan sus bordes inferior y derecho. CenterImage significa que la imagen se centra dentro del control; si la imagen es mayor que el control, se recortan los bordes exteriores de la imagen. AutoSize significa que el tamaño del control se ajusta al tamaño de la imagen. Con StretchImage sucede a la inversa, esto es, el tamaño de la imagen se ajusta al tamaño del control.

    En el ejemplo siguiente, la ruta de acceso establecida como ubicación de la imagen es la carpeta Mis documentos. Se utiliza esta ubicación porque se supone que la mayoría de los equipos que ejecutan el sistema operativo Windows van a tener este directorio. Esto permite también a los usuarios con niveles de acceso mínimos ejecutar la aplicación de forma segura. En el ejemplo siguiente se da por supuesto que hay un formulario con un control PictureBox ya agregado.

    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 también