2014-05-03 34 views
0

我試圖使經典的圖片應用程序中查看像照片集線器或任何移動設備上的任何標準圖片應用程序。到目前爲止,我開始使用Kinnara的工具包fork和CompositeTransform中的FlipView進行縮放,但我不明白如何將圖片對齊到屏幕中心(VerticalAlignment = Center似乎不能作爲DataTemplate中Image的屬性),而我不明白如何在查看鄰居圖片時使縮放後的圖片在後臺不可見。另外,也許有一些我錯過的標準模式?圖片幻燈片放大縮小在WP8

UPD:一些代碼

<toolkit:FlipView x:Name="FlipView" 
        d:DataContext="{d:DesignInstance viewModels:PostsViewModel}" 
        ItemsSource="{Binding Pictures}"> 
    <toolkit:FlipView.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Vertical"> 
       <ProgressBar Value="{Binding DownloadProgress}" 
          Maximum="100" 
          Minimum="1" 
          IsEnabled="{Binding IsLoading}" /> 
       <Image x:Name="PostImage" 
         Source="{Binding Sample}" 
         HorizontalAlignment="Center" 
         VerticalAlignment="Center" 
         Stretch="UniformToFill" 
         ManipulationDelta="Image_OnManipulationDelta"> 
        <Image.RenderTransform> 
         <CompositeTransform /> 
        </Image.RenderTransform> 
       </Image> 

      </StackPanel> 
     </DataTemplate> 
    </toolkit:FlipView.ItemTemplate> 
</toolkit:FlipView> 

UPD2:Pinchzooming代碼

private void Image_OnManipulationDelta(object sender, ManipulationDeltaEventArgs e) 
    { 
     if (e.PinchManipulation != null) 
     { 
      var transform = (CompositeTransform)((Image) sender).RenderTransform; 

      // Scale Manipulation 
      transform.ScaleX = e.PinchManipulation.CumulativeScale; 
      transform.ScaleY = e.PinchManipulation.CumulativeScale; 

      // Translate manipulation 
      var originalCenter = e.PinchManipulation.Original.Center; 
      var newCenter = e.PinchManipulation.Current.Center; 
      transform.TranslateX = newCenter.X - originalCenter.X; 
      transform.TranslateY = newCenter.Y - originalCenter.Y; 
      // end 
      e.Handled = true; 
     } 
    } 
+0

提供一些代碼示例應用程序。 – SJD

+0

完成。這是「phone:PhoneApplicationPage」中唯一的XAML元素。 – xill47

+0

好吧,我想你應該在Kinnara的垂直對齊工具包文檔中查找。你的代碼似乎沒問題。 此外,張貼縮放實施代碼。 – SJD

回答