UPDATE 1 "Pinch"아래에 이미지를 유지하려면 조작 원점 값을 기준으로 ScrollViewer의 Vertical 및 Horizontal 오프셋을 설정해야한다고 생각합니다. 그러나, 나는 그 값을 계산하는 방법에 문제가 있습니다.WPF Centering Pinch to LayoutTransform
큰 응용 프로그램의 일부로 사용자는 스크롤 뷰어에서 이미지를 집어 넣고 확대/축소하고 팬 할 수 있어야합니다. 아래에있는 내용은 패닝 (panning) 및 핀치 - 줌 (pinch-to-zoom)을 허용합니다. 그러나 확대/축소는 왼쪽 상단에서 발생하는 것처럼 보입니다. 이 코드를 수정하려면 어떻게해야합니까? RenderTransform을 사용하여이 작업을 완벽하게 수행하는 예제를 발견했지만 LayoutTransforms에서이를 수행하는 방법을 알 수 없습니다.
Private Sub MainImage_ManipulationStarting(sender As Object, e As ManipulationStartingEventArgs) Handles MainImage.ManipulationStarting
e.ManipulationContainer = MainScrollViewer
e.Handled = True
End Sub
Private Sub MainImage_ManipulationDelta(sender As Object, e As ManipulationDeltaEventArgs) Handles MainImage.ManipulationDelta
Dim delta = e.DeltaManipulation
Dim element = TryCast(e.Source, FrameworkElement)
If element IsNot Nothing Then
'Apply Scale Value
ScaleTrans.ScaleX *= delta.Scale.X
ScaleTrans.ScaleY *= delta.Scale.Y
'Panning
MainScrollViewer.ScrollToHorizontalOffset(MainScrollViewer.HorizontalOffset + delta.Translation.X * -1)
MainScrollViewer.ScrollToVerticalOffset(MainScrollViewer.VerticalOffset + delta.Translation.Y * -1)
End If
End Sub
e.ManipulationOrigin에서 CenterX/Y 값을 계산했지만 작동하지 않는 것으로 나타났습니다. ScrollViewer의 Vertical 및 Horizontal 오프셋 값의 값을 변경해야한다고 생각합니다. 그러나 오프셋을 정확하게 계산하는 방법을 알 수는 없습니다. – Sen
@Sen 업데이트 된 코드도 표시 할 수 있습니까? – Jai