2013-10-08 20 views
18

Bir ızgara içinde bulunan bir sınırın içinde bulunan bir görüntüyü kırpan mantığı oluşturdum. Kılavuzun birçok sınırı var, bu yüzden bu ızgarada birçok resim olacak. Image zoomed with crop selectorAdornerLayer, resmi yakınlaştırırsam Kenarlık dışına çıkar. WPF

Bu görüntüde pic yok: Sorun resmi büyütmek zaman mantık (tamam) resmi uzaklaştırdınız ama kırpma mantığı kullandığınızda AdornerLayer resim gibi sınırın dışına gider olmasıdır yakınlaştırma, böylece AdornerLayer doğrudur: enter image description here

Ben görüntüye kırpma eklemek için kullanıyorum kodu: fel adlı nesne ben kırpmak istiyorum resimdir Bu durumda

private void AddCropToElement(FrameworkElement fel, System.Drawing.Image img) 
{ 
    if (!cropElements.ContainsKey(Convert.ToString(((Image)fel).Source))) 
    { 
     if (_felCur != null) 
     { 
      RemoveCropFromCur(); 
     } 

     rcInterior = new Rect(
      fel.ActualWidth * 0.2, 
      fel.ActualHeight * 0.2, 
      fel.ActualWidth * 0.6, 
      fel.ActualHeight * 0.6); 
     rectMoving = false; 
     Rect newRect = scaleRect(rcInterior, img); 
     imgCropMove = img; 

     AdornerLayer aly = AdornerLayer.GetAdornerLayer(fel); 
     _clp = new CroppingAdorner(fel, rcInterior); 
     aly.Add(_clp); 
     cropElements.Add(Convert.ToString(((Image)fel).Source), fel); 

     imageCropped = _clp.Crop(new System.Drawing.Bitmap(img), newRect); 


     _clp.CropChanged += HandleCropChanged; 
     _felCur = fel; 
    } 
} 

ve sınır onun ebeveynidir.

Görüntü yakınlaştırılırsa dışarıda giden AdornerLayout sorununu nasıl giderebilirim?

+0

Adorner OnRender kodunu biraz paylaşır mısınız lütfen? (ya da xaml adorners kullanıyorsanız bunu paylaşın) –

cevap

1

Varsayılan Pencere Adorner'ı kullanıyor musunuz veya XAML'nizde Kenarlık çevresinde özel bir AdornerDecorator oluşturdunuz mu? Eğer Sınırdaki bir yakınlaştırma faktörü uygulayarak eğer

<AdornerDecorator> 
    <Border>...</Border> 
</AdornerDecorator> 

Ek olarak, sizin Sınır nesne üzerinde Ölçeği eşleştirmek için bir senin kırpma ekran dikdörtgenin üzerinde Bağlama ekleyebilir.

İlgili konular