ScaleTransform을 사용하여 확대/축소 할 ScrollViewer 내에 포함 된 Canvas 요소가 있습니다. 그러나 나는 확대/축소 작업이 끝나면 캔버스의 동일한 부분에 초점을 맞춘 뷰어의 스크롤 위치를 유지할 수 있기를 원합니다. 현재 캔버스를 확대/축소하면 뷰어의 스크롤 위치가 원래대로 유지되고 사용자가보고 있던 장소가 손실됩니다.WPF 줌 캔버스 및 스크롤 위치 유지
저는 아직 WPF를 배우고 있으며 이것에 대해 약간 뒤로 물러나 보았습니다.하지만 원하는 것을 성취하기위한 훌륭한 XAML 기반 방법을 알 수는 없습니다. 이 문제에 도움이 될 경우 대단히 감사 드리며 학습 과정에서 도움이 될 것입니다. 여기
는<Grid>
<ScrollViewer Name="TrackScrollViewer" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Canvas Width="2560" Height="2560" Name="TrackCanvas">
<Canvas.LayoutTransform>
<ScaleTransform ScaleX="{Binding ElementName=ZoomSlider, Path=Value}"
ScaleY="{Binding ElementName=ZoomSlider, Path=Value}"/>
</Canvas.LayoutTransform>
<!-- Some complex geometry describing a motor racing circuit -->
</Canvas>
</ScrollViewer>
<StackPanel Orientation="Horizontal" Margin="8" VerticalAlignment="Top" HorizontalAlignment="Left">
<Slider Name="ZoomSlider" Width="80" Minimum="0.1" Maximum="10" Value="1"/>
<TextBlock Margin="4,0,0,0" VerticalAlignment="Center" Text="{Binding ElementName=ZoomSlider, Path=Value, StringFormat=F1}"/>
</StackPanel>
</Grid>
위 링크는 자세한 내용을 많이 제공하지만 다운로드는이 페이지의 링크로 이동되었습니다. http://blogs.windowsclient.net/joeyw/archive/2009/06/02/pan-and-zoom- updated.aspx –
나는 이것에 읽는 관심이 끌렸다 그러나 연결의 양쪽은 부서진다. 하지만 CodeProject (http://www.codeproject.com/KB/WPF/DeepZoom.aspx)에 대한 기사를 찾았습니다. – Tony