2011-07-31 24 views
6

私は窓の電話7アプリケーションでズーム可能な画像を作ろうとしています。 (下のコード)しかし、それは仕事量、画像の用量を表示します。誰かが正しいトラックに私を置くことができます、これは正しいコントロールですか?それは私が間違って何ですか?ウィンドウ内のズーム可能な画像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; 

使用するための制御をイマイチMultiScaleImageにMSDNを読むEDIT。それはDeepZoomImageTileSourceのURLが画像のURLではなく、XMLファイルへのURLが深いズームタイルに使用する画像を一覧表示する特定の画像ソース(ないビットマップ/ JPG)

+0

あなたは、ユーザーとの対話に基づいて画像をスケールアップしたい意味ですか? – softwaredeveloper

+0

私はそれが電話の写真ライブラリとまったく同じに働くことを望みます。 –

+0

グリッドではなくScrollViewerコントロールで開始し、画像を追加することができます。スケールアップおよびスケールダウンするには、TouchイベントのManipulationStarted、Delta、および完了し、デルタスケールに基づいて画像を上下させます。お役に立てれば。私は市場の拡大鏡アプリがこれを使用していることを知っています。 – softwaredeveloper

答えて

8

を必要とします。

次のように私はSilverlightのツールキット使用して単純なズーム可能な画像を実現し:

double initialAngle; 
double initialScale; 
:その後、あなたの角度やズームのための2つの変数を宣言し

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

<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> 

とコード内の

その後、ジェスチャーイベントを処理します。

回転ラインのコメントを解除
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; 
} 

あなたにも画像を回転処理する場合。

サム

+0

あなたの星。ありがとう –

関連する問題