Czy istnieje prosty i funkcjonalny sposób powiększania obrazu w ramce graficznej, w tym paski przewijania?C#: Prosty i funkcjonalny sposób powiększania obrazków z obrazka za pomocą pasków przewijania
W tej chwili używam ramki graficznej w panelu z włączonym automatycznym przewijaniem. Aby powiększyć, powiększam obraz i przesuwaj go za pomocą pasków przewijania na panelu. Problem polega na tym, że zachowuje się dziwnie. Na przykład: jeśli powiększysz do znacznej odległości, margines między górną i lewą krawędzią formularza i obrazem staje się coraz większy.
To jest metoda powiększania. Mam go od here.
private void ZoomInOut(bool zoom)
{
//Zoom ratio by which the images will be zoomed by default
int zoomRatio = 10;
//Set the zoomed width and height
int widthZoom = pictureBox_viewer.Width * zoomRatio/100;
int heightZoom = pictureBox_viewer.Height * zoomRatio/100;
//zoom = true --> zoom in
//zoom = false --> zoom out
if (!zoom)
{
widthZoom *= -1;
heightZoom *= -1;
}
//Add the width and height to the picture box dimensions
pictureBox_viewer.Width += widthZoom;
pictureBox_viewer.Height += heightZoom;
}
Każda pomoc jest doceniana.
Z góry dziękuję.
Marco
EDIT: Dwa screeny czyli mniej i powiększonego (16 razy) obrazu. Zwróć uwagę na margines między górną krawędzią obrazu a górną krawędzią formularza.
prosta odpowiedź: Nie! Obecny sposób, w jaki korzystasz, jest najlepszym wyborem. Naprawdę nie mam problemu z tym, co opisałeś w swoim pytaniu. Myślę, że zrzut ekranu byłby dobry w tym przypadku. –
@KingKing Dodałem dwa zrzuty ekranu. –
To bardzo dziwne, chyba że istnieje jakiś kod zmieniający "Top" i "Left" z twojego "PictureBox". Powinieneś sam sprawdzić cały kod, aby opublikować go tutaj. –