Udostępnij za pośrednictwem


Jak modyfikować rozmiar lub położenie obrazu podczas działania (Windows Forms)

Jeśli używasz kontrolki windows Forms PictureBox w formularzu, możesz ustawić dla niej właściwość SizeMode na:

  • Wyrównaj lewy górny róg obrazu z lewym górnym rogiem kontrolki

  • Wyśrodkowanie obrazu w kontrolce

  • Dopasuj rozmiar kontrolki, aby dopasować wyświetlany obraz

  • Rozciągnij dowolny wyświetlany obraz, aby dopasować kontrolkę

Rozciąganie obrazu (zwłaszcza jednego w formacie mapy bitowej) może spowodować utratę jakości obrazu. Metapliki, które są listami instrukcji graficznych do rysowania obrazów w czasie wykonywania, lepiej nadają się do rozciągania niż mapy bitowe.

Aby ustawić właściwość SizeMode podczas działania programu

  1. Ustaw SizeMode na wartość Normal (wartość domyślna), AutoSize, CenterImagelub StretchImage. Normal oznacza, że obraz jest umieszczony w lewym górnym rogu kontrolki; jeśli obraz jest większy niż kontrolka, jego dolne i prawe krawędzie są obcięte. CenterImage oznacza, że obraz jest wyśrodkowany w elemencie sterującym; jeśli obraz jest większy niż ten element, zewnętrzne krawędzie obrazu są przycinane. AutoSize oznacza, że rozmiar kontrolki jest dostosowywany do rozmiaru obrazu. StretchImage jest odwrotna i oznacza, że rozmiar obrazu jest dostosowywany do rozmiaru kontrolki.

    W poniższym przykładzie ścieżka ustawiona dla lokalizacji obrazu to folder Moje dokumenty. Dzieje się tak, ponieważ można założyć, że większość komputerów z systemem operacyjnym Windows będzie zawierać ten katalog. Dzięki temu użytkownicy z minimalnymi poziomami dostępu systemu mogą bezpiecznie uruchamiać aplikację. Przykład poniżej zakłada formularz z już dodanym kontrolką 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"));  
       }  
    

Zobacz też