2017-11-18 402 views
-1

我现在有以下代码:WPF与滑块更改的ScrollViewer尺寸缩放

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

当我调整滑块,整个的ScrollViewer是变化的大小,且上下在应用移动滑块。我想要的只是InkCanvas内部放大和缩小的图像。我是否使用了正确的WPF控件,或者我在某处搞错了?我的理解是,我正在改变InkCanvas的缩放比例,而不是滑动条的ScrollViewer Dimensions。

回答

1

应用变尺度在图像,而不是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

因此,这使得图像放大和缩小,但如果我在图像上画,那些没有相对于图像缩放。 –