2013-02-24 2 views
1

이미지에 따라 약간의 확대/축소 문제가 있습니다. 내 XAML에는 ScrollViewer이 첨부되어 Image이 첨부되어 있기 때문에 확대 할 수 있습니다. 이처럼 : 내가 뭘하려는 것은 경우에 이미지가 이미지 컨트롤에 맞게 너무 큰 것을하고 (단,이 경우) 축소 할 필요가ScrollViewer에 맞는 이미지 축소

<ScrollViewer x:Name="ImageScrollViewer"> 
    <Image x:Name="ImagePanel" 
      Stretch="Uniform" 
      VerticalAlignment="Center" 
      HorizontalAlignment="Center"/> 
</ScrollViewer> 

, 나는 싶습니다 ScrollViewer의 ZoomFactor를 프로그래밍 방식으로 설정하여 Image 컨트롤에 맞 춥니 다. 내 문제는, 내 이미지의 너비와 높이를 고려하여 어떻게 그 요소를 결정할 수 있을지 모르겠다.

또한 어떤 방식 으로든 그림을 변경하지 않고이 문제에 대한 비슷한 주제를 보았지만 지금까지 아무도 내 사례에 적용하지 않았습니다. 수직/수평 스크롤바가 보이지 않을 때까지 내 그림을 축소해야합니다.

이 작업을 수행하는 방법에 대한 제안은 크게 감사드립니다.

+0

당신은 당신의 ScrollViewer의 크기가 무엇인지 아십니까? –

답변

3

의 크기 (Width, Height)를 ScrollViewer.ViewportWidth/Height과 일치하도록 설정할 수 있습니다. 기본적으로 모든 이미지가 표시됩니다. 그렇다면 MinZoomFactor을 1로 설정하여 감각 이상으로 아무도 가려지지 않도록하고 MaxZoomFactor을 의미있는 것으로 만듭니다. 기본 Auto (및 Stretch보다 VerticalAlignment/HorizontalAlignment 다른)의 이미지 크기 속성을 떠나 Image (ActualWidth/ActualHeight은 가정 Image.Stretch="None"ScrollViewer (ViewportWidth/ViewportHeight)의 가로 세로 비율을 비교하고 Image는 것을 -

당신은 더 제어하려면 실제로로드 됨). ScrollViewer 가로 세로 비율이 넓은 경우 - MinZoomFactorScrollViewer.ViewportHeight/Image.ActualHeight이됩니다. Image 가로 세로 비율이 더 넓은 경우 을 입력하면 ScrollViewer.ViewportWidth/Image.ActualWidth이됩니다. MaxZoomFactor은 이미지 픽셀 당 화면 픽셀 이상으로 확대 (응용 프로그램의 100 % 확장) 할 때를 제외하고는 1이어야합니다.

당신은 흥미로운 내 블로그 게시물을 찾을 수 있습니다

http://blog.onedevjob.com/2012/07/21/creating-a-zoomable-scrollviewer-with-zoomsnappoints-in-winrt-xaml/