2013-08-16 14 views
9

Kaydırma çubukları da dahil olmak üzere bir resmi bir görüntüyü yakınlaştırmak için basit ve işlevsel bir yol var mı?C#: Resim kutularını kaydırma çubuklarıyla yakınlaştırmanın basit ve işlevsel yolu

Şu anda otomatik kaydırma etkinleştirilmiş bir panelde resim kutusu kullanıyorum. Yakınlaştırmak için, resim kutusunu genişletin ve paneldeki kaydırma çubuklarıyla taşıyorum. Sorun şu ki, garip davranıyor. Örneğin: Uzaklaştırıyorsanız, üst ve sol form kenarlıkları arasındaki kenar boşluğu ve görüntü daha büyük ve daha büyük olur.

Bu, yakınlaştırma yöntemidir. here'dan aldım.

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; 

    } 

Herhangi bir yardım için teşekkür ederiz.

Şimdiden teşekkürler.

Marco

DÜZENLEME: Bir yakınlaştırılmamış ve yakınlaştırılmış (16 kez) Görüntünün İki ekran görüntüsü. Resmin üst sınırı ve formun üst sınırı arasındaki kenar boşluğuna dikkat edin. UnzoomedImage ZoomedImage

+0

Basit cevap: Hayır! Kullandığınız mevcut yöntem en iyi seçimdir. Sorunuzda açıkladığınız sorunun ne olduğunu gerçekten anlamadım. Bu durumda ekran görüntüsünün iyi olacağını düşünüyorum. –

+0

@KingKing İki ekran görüntüsü ekledim. –

+0

Bazı kodlar 'PictureBox'unuzun' Top' ve 'Left' değiştirilmediği sürece çok garip. Kodu buraya yazarak kendiniz kontrol etmelisiniz. –

cevap

3

Ben resim kutusu görüntü yakınlaştırma (rescale) daha iyi değil onun düşünüyorum. Bu makalede bir göz atın - http://www.codeproject.com/Articles/21097/PictureBox-Zoom

Ve

How to zoom in&out an image in c#

+0

Tamam. Ve görüntüyü yeniden ölçeklediğimde, formda nasıl yerleştirebilirim? İlk sorunuma götüren resim kutusunun boyutunu güncellemem gerekiyor. Ben haklı mıyım :) –

+0

Görüntü yeniden ölçeklendiğinde, ne gerekiyor? PAN (kullanıcının fare sürükle kullanarak görüntüyü kaydırabilir) veya resim kutusundaki kaydırma çubukları? –

+0

Ve 2. görüntüdeki sorun nedir? Yakınlaştırılmış ve iyi görünüyor görünüyor. –