2011-01-17 9 views
50

Mam PictureBox picture.Jak mogę uzyskać paski przewijania na Picturebox

używam:

picture.Size = bmp.Size; 
picture.Image = bmp; 

Powiedzmy, istnieją dwie liczby całkowite maxWidth i maxHeigth.
Chcę dodać pionowy/poziomy pasek przewijania do picture, gdy jego rozmiar przekracza maxWidth i/lub maxHeight. Jak mogę to zrobić?

Odpowiedz

104

można łatwo zrobić z Panel Kontroli

Włóż płytę do formularza, powiedzieć Panel1 i ustawić

panel1.AutoScroll = true;

wstawić PictureBox do Panel, powiedzmy zdjęcie i ustawić

picture.SizeMode = PictureBoxSizeMode.AutoSize; 

i ustaw obraz

picture.Image = bmp; 

nadzieję, że to pomaga

+3

To jest dobra odpowiedź, ponieważ jeśli ustawisz panel do zakotwiczenia w formularzu, panel rozwinie się w miarę rozwijania formularza, pokazując i ukrywając paski przewijania, jeśli jest to konieczne –

+1

Chcę oddać tę odpowiedź w górę DWIEŚCIE :) – noelicus

+10

Dodałbym do odpowiedzi binila, poniżej: obrazek musi mieć kotwicę nie ustawioną na prawo lub na dole. Ustawienie kotwicy w prawo zapobiega wyświetlaniu poziomego paska przewijania. Ustawienie go na dole zapobiega wyświetlaniu pionowego paska przewijania. – CristisS

0

Inna sugestia jest umieścić PictureBox wewnątrz FlowLayoutPanel.

Ustaw zwój Auto z FlowLayoutPanel na true i ustawić tryb rozmiaru obrazu do normalnego

Używanie FlowLayoutPanel pilnuje obraz jest zawsze w pozycji 0,0 w panelu

0

mam go do pracy poprzez umieszczenie skrzynki graficznej w panelu sterowania, ustawię właściwość AutoScroll na wartość true, ale ustawię właściwość Autosize w panelu na True, a właściwość Dock panelu na Wypełnienie (w ten sposób, gdy użytkownik zmieni rozmiar formularza - tak samo Płyta). Dla Picturebox ustawiłem jego właściwość Dock na None, a SizeMode na Autosize (zmienia rozmiar również wtedy, gdy Panel i forma zmieniają rozmiar.) Działa jak wdzięk, Picturebox ma paski przewijania i kiedy użytkownik zmienia rozmiar formularza - wszystko jest nadal poprawnie wstawiony!

Powiązane problemy