2017-11-18 18 views
-1

Im Moment habe ich den folgenden Code:WPF Zooming mit Slider ändern Scroll Größe

<ScrollViewer DockPanel.Dock="Top"> 
      <InkCanvas Name="InkCanvasOnImage" Height="203"> 
       <InkCanvas.LayoutTransform> 
        <ScaleTransform ScaleX="{Binding ElementName=ZoomSlider,Path=Value}" ScaleY="{Binding ElementName=ZoomSlider,Path=Value}"></ScaleTransform> 
       </InkCanvas.LayoutTransform> 
      </InkCanvas> 
     </ScrollViewer> 

     <Slider DockPanel.Dock="Top" Name="ZoomSlider" Value="1" Minimum="0.3" Maximum="3" Height="20" /> 

Wenn ich den Regler, die gesamte Scroll Größen verändert sich, und bewegen Sie den Schieberegler nach oben und unten in der Anwendung. Was ich beabsichtigte, war nur das Bild, das sich in den InkCanvas befindet, um hinein- und herauszuzoomen. Verwende ich die richtige WPF-Steuerung dafür, oder habe ich irgendwo einen Fehler gemacht? Mein Verständnis ist, dass ich den Umfang der InkCanvas und nicht die ScrollViewer Dimensionen mit dem Slider verändern werde.

Antwort

1

Maßstab Transformation Auf Bild anwenden, anstatt, InkCanvas

<ScrollViewer DockPanel.Dock="Top"> 
      <InkCanvas Name="InkCanvasOnImage" Height="203"> 

       <Image Source="AddImageSourceHere"> 
        <Image.LayoutTransform> 
         <ScaleTransform ScaleX="{Binding ElementName=ZoomSlider,Path=Value}" ScaleY="{Binding ElementName=ZoomSlider,Path=Value}"></ScaleTransform> 
        </Image.LayoutTransform> 
       </Image> 

      </InkCanvas> 
     </ScrollViewer> 

     <Slider DockPanel.Dock="Top" Name="ZoomSlider" Value="1" Minimum="0.3" Maximum="3" Height="20" /> 
+0

Also das macht das Bild vergrößern und verkleinern, aber wenn ich auf das Bild zu zeichnen, sind solche, die nicht im Verhältnis zu vergrößernden Bildes. –