Hi guy. To day, I will introduction about zoom in or out on Multitouch...

Step 1: Design basic on XAML. I can't introduction about that...
<Grid Name="content">
       <Grid>
           <Grid.RowDefinitions>
               <RowDefinition Height="*"></RowDefinition>
               <RowDefinition Height="*"></RowDefinition>
           </Grid.RowDefinitions>
           <ListView Grid.Row="0" Name="lst_images" Tapped="lst_images_Tapped">
               <ListView.ItemsPanel>
                   <ItemsPanelTemplate>
                       <WrapGrid Orientation="Horizontal"></WrapGrid>
                   </ItemsPanelTemplate>
               </ListView.ItemsPanel>
               <ListView.ItemTemplate>
                   <DataTemplate>
                       <StackPanel>
                           <Image Source="{Binding link}" Width="100" Height="200"></Image>
                       </StackPanel>
                         
                   </DataTemplate>
               </ListView.ItemTemplate>
           </ListView>
           <Grid Grid.Row="1">
               <TextBlock FontSize="23" Foreground="White" Text="Click a pictures to see result,please!!!...,"></TextBlock>
           </Grid>
       </Grid>
             
 
       <Canvas Name="Zoomgrid" Visibility="Collapsed">
           <Grid>
                 
               <Image Name="Zoomimages" Width="400" Height="800" Stretch="Fill" ScrollViewer.HorizontalScrollBarVisibility="Auto"
                      ScrollViewer.VerticalScrollBarVisibility="Auto"
                      ManipulationDelta="Image_ManipulationDelta"
                      RenderTransformOrigin="0.5,0.5"
                      ManipulationMode="All"
                      >
                   <Image.RenderTransform>
                       <CompositeTransform/>
                   </Image.RenderTransform>
                     
               </Image>
               <Image Name="exit"
                      Source="/Assets/cancel-32.png"
                      Width="27" Height="27"
                      VerticalAlignment="Top"
                      HorizontalAlignment="Left"
                      Tapped="exit_Tapped"
                     >
                   <Image.RenderTransform>
                       <CompositeTransform/>
                   </Image.RenderTransform>
               </Image>
           </Grid>
       </Canvas>
   </Grid>

Here I'm using Canvas because zoom will not work on "List"(listbox or listview). Because, we must using canvas.

Step 2:
 Create a database. Here I have 4 pictures. All will be add into List<data> to get link when loading application.
 Image img = sender as Image get all values of images

CompositeTransform ct = img.RenderTransform as CompositeTransform  Value changes when started zoom in and out.

Here code is zoom in. Testing will be understand.
ct.ScaleX *= e.Delta.Scale
ct.ScaleY *= e.Delta.Scale

public MainPage()
       {
           this.InitializeComponent();
 
           this.NavigationCacheMode = NavigationCacheMode.Required;
             
           List<data> _data = new List<data>();
           var _link = new data() { link = "/Assets/download.jpg" };
           _link = new data() { link = "/Assets/images(1).jpg" };
               _data.Add(_link);
               _link = new data() { link = "/Assets/images(2).jpg" };
               _data.Add(_link);
               _link = new data() { link = "/Assets/images(3).jpg" };
               _data.Add(_link);
               _link = new data() { link = "/Assets/images.jpg" };
 
               _data.Add(_link);
           lst_images.ItemsSource = _data;
       }
       class data
       {
           public string link { get; set; }
       }
       
        
       double mincale = 1.0;
       private void Image_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
       {
            Image img = sender as Image;
           CompositeTransform ct = img.RenderTransform as CompositeTransform;
           if (ct == null) return;
           ct.ScaleX *= e.Delta.Scale;
           ct.ScaleY *= e.Delta.Scale;
           if (ct.ScaleX < mincale) ct.ScaleX = mincale;
           if (ct.ScaleY < mincale) ct.ScaleY = mincale;
 
           //drag
             
           ct.TranslateX += e.Delta.Translation.X;
           ct.TranslateY += e.Delta.Translation.Y;
 
 
           double scalewidth = Zoomimages.ActualWidth * ct.ScaleX;
           double scleheight = Zoomimages.ActualHeight * ct.ScaleY;
 
           double xdiff = Math.Max(0, (scalewidth - this.content.ActualWidth) / 2);
           double ydiff = Math.Max(0, (scleheight - this.content.ActualHeight) / 2);
 
           if (Math.Abs(ct.TranslateX) > xdiff)
               ct.TranslateX = xdiff * Math.Sign(e.Delta.Translation.X);
           if (Math.Abs(ct.TranslateY) > ydiff)
               ct.TranslateY = ydiff * Math.Sign(e.Delta.Translation.Y);
       }
 
       private void lst_images_Tapped(object sender, TappedRoutedEventArgs e)
       {
           var _list = (ListView)sender;
           if (lst_images.SelectedIndex != -1)
           {
               Zoomgrid.Visibility = Visibility.Visible;
               data d = (data)lst_images.SelectedItem;
               string Url = d.link;
               Zoomimages.Source = new BitmapImage(new Uri("ms-appx:" + Url));
           }
       }
 
       private void exit_Tapped(object sender, TappedRoutedEventArgs e)
       {
           Zoomgrid.Visibility = Visibility.Collapsed;
             
           CompositeTransform ct =Zoomimages.RenderTransform as CompositeTransform;
           if (ct == null) return;
           ct.ScaleX = mincale;
           ct.ScaleY = mincale;
             
       }

Step 3: Drag a pictures when zoom in. Why are we dragging??? Because more zooming then pictures will bigger. It's hidden some point on pictures. 
Note: ManipulationMode="All" on design.
If forget that translate does not work.

Drag follow X,Y
ct.TranslateX += e.Delta.Translation.X;
ct.TranslateY += e.Delta.Translation.Y;

Are Checking drag picture over a screens???

double scalewidth Zoomimages.ActualWidth * ct.ScaleX;
           double scleheight Zoomimages.ActualHeight * ct.ScaleY;
 
           double xdiff Math.Max(0, (scalewidth - this.content.ActualWidth) / 2);
           double ydiff Math.Max(0, (scleheight - this.content.ActualHeight) / 2);
 
           if (Math.Abs(ct.TranslateX) > xdiff)
               ct.TranslateX = xdiff * Math.Sign(e.Delta.Translation.X);
           if (Math.Abs(ct.TranslateY) > ydiff)
               ct.TranslateY = ydiff * Math.Sign(e.Delta.Translation.Y);

Thanks, I'm international so could wrong some text.
Link example for this posts.
https://code.msdn.microsoft.com/vstudio/Zoom-and-drag-a-Using-4860ac3c