2011-07-31 33 views
6

Windows Phone 7 uygulamasında yakınlaştırılabilir bir görüntü oluşturmaya çalışıyorum. Ancak (aşağıdaki kod), ancak doz çalışması, görüntü dosent ekranı. Birisi beni doğru yola sokabilir mi, bu doğru kontrol nedir? Eğer öyleyse neyi yanlış yapıyorum? kullanmak kontrolünü isnt MultiScaleImage MSDN OkumaWindows Phone 7

 <controls:PivotItem Name="Header" Header="item1"> 
      <Grid> 
       <MultiScaleImage Name="mainImage" /> 
      </Grid> 
     </controls:PivotItem> 

     var imageurl = loginxml.Descendants("response").Elements("submissions").Elements("submission").Elements("file_url_screen").First().Value; 
     //imageurl = https://inkbunny.net///files/screen/165/165693_CobaltHusky_random_anatomy_doodles.png 
     Header.Header = loginxml.Descendants("response").Elements("submissions").Elements("submission").Elements("title").First().Value; 
     DeepZoomImageTileSource img = new DeepZoomImageTileSource(new Uri(imageurl)); 
     mainImage.Source = img; 

DÜZENLEME. Belirli bir resim kaynağına (bir bitmap/jpg'ye değil) ihtiyaç duyar.

+0

Eğer kullanıcı etkileşimine dayalı görüntüyü Ölçek istiyor anlama geliyor? – softwaredeveloper

+0

Telefondaki fotoğraf kitaplığı ile tam olarak aynı olmasını istiyorum. –

+0

Başlat'ı, ızgara yerine ScrollViewer denetimi ile baştan başa kaydırarak ve içine bir görüntü ekleyerek yakınlaştırabilir ve uzaklaştırabilirsiniz. Büyütmek ve küçültmek için Touch olayları ManipulationStarted, Delta ve tamamlandı ve delta ölçeğine göre görüntüyü yukarı veya aşağıya kaydırın. Bu yardımcı olur umarım. Piyasadaki Büyüteç uygulamasının bunu kullandığını biliyorum. – softwaredeveloper

cevap

8

DeepZoomImageTileSource URL'si görüntülü bir url değil, aynı zamanda derin yakınlaştırma karoları için kullanılacak resimleri listeleyen bir XML dosyasının URL'si değildir.

<Image Name="MainImage" RenderTransformOrigin="0.5,0.5" CacheMode="BitmapCache"> 
    <Image.RenderTransform> 
     <CompositeTransform x:Name="transform" /> 
    </Image.RenderTransform> 
    <toolkit:GestureService.GestureListener> 
     <toolkit:GestureListener PinchStarted="OnPinchStarted" PinchDelta="OnPinchDelta" /> 
    </toolkit:GestureService.GestureListener> 
</Image> 

ve kod

:

double initialAngle; 
double initialScale; 
:

MainImage.Source = new BitmapImage(new Uri(url)); 

Sonra açı ve zum için iki değişken bildirmek Silverlight araç kullanarak aşağıdaki gibi

ben basit yakınlaştırılabilen görüntü uygulamaya

Ve ardından hareket olaylarını işleyin:

private void OnPinchStarted(object sender, PinchStartedGestureEventArgs e) 
{ 
    initialAngle = transform.Rotation; 
    initialScale = transform.ScaleX; 
} 

private void OnPinchDelta(object sender, PinchGestureEventArgs e) 
{ 
    //transform.Rotation = initialAngle + e.TotalAngleDelta; 
    transform.ScaleX = initialScale * e.DistanceRatio; 
    transform.ScaleY = initialScale * e.DistanceRatio; 
} 

Görüntüyü döndürmeyi de işlemek isterseniz dönüş çizgisini kaldırın. Sam

+0

Bir yıldızın. Teşekkürler –