2013-08-01 2 views
0

ObservableCollection에 의해 채워지는 이미지 목록이 있습니다. 이 작업은 ListBox의 ItemsSource를 코드 배후의 Collection에 바인딩하여 수행됩니다. 결과 이미지 목록이보기 싫어 보이지만 모든 것이 제대로 작동합니다. 현재 이미지는 가로 WrapPanel에 래핑되고 있는데, 이는 내가 유지하고 싶은 기능입니다. 그러나 문제는 CameraCaptureTask에서 가져온 이미지가 가로 또는 세로 모드인지 여부에 따라보기에 표시 될 때 매우 넓거나 키가 큰 것입니다. 가로 세로 비율을 그대로 유지하면서 이러한 이미지의 크기를 조정할 수 있기를 원합니다. 아마도 너비 나 높이의 제한을 128보다 작게 설정하는 것이 좋습니다. 다음 코드에서이 작업을 정확히 수행 할 수 있습니까? 또한 이미지에 종횡비를 유지하는 방법이 있습니까? 예를 들어, 인물 사진은 종횡비를 유지하기 위해 128보다 작은 폭을 유지하면서 최대 높이가 128 인 것을 알고 있습니까? @tanuj_loop이 시사하는 것처럼ObservableCollection에서 채워지는 뷰의 이미지 크기를 변경하는 방법

에서 MainPage.xaml

<ListBox x:Name="Recent" ItemsSource="{Binding}" Margin="8" 
        SelectionChanged="recent_SelectionChanged" toolkit:TiltEffect.IsTiltEnabled="True" 
        ItemContainerStyle="{StaticResource MyStyle}"> 
       <ListBox.ItemsPanel> 
        <ItemsPanelTemplate> 
         <toolkit:WrapPanel Orientation="Horizontal" /> 
        </ItemsPanelTemplate> 
       </ListBox.ItemsPanel> 
      </ListBox> 
+0

하나의 질문에 많은 질문이 있습니다 .. 당신에게만 suggetion이 있습니다 .. 당신은 listview에 itemTemplate을 정의 할 수 있으며 항목의 컬렉션에있는 항목 클래스에 정의 된 일부 속성에 크기를 바인딩 할 수 있습니다. 이것이 실제로 이미지 아이템의 크기를 실제로 조작 할 수있는 방법입니다. – loop

답변

0

당신은 당신의 ItemTemplate을 설정할 수 있지만 잠재적 또한 ViewBox에서 항목을 삽입하고 보장하기 위해 이미지에 직접 당신의 크기 변경을 적용하는 대신 제안 당신은 이미지의 해상도를 유지하지만 당신이 겪고있는 크기 제한을 얻습니다.

<ListBox.ItemTemplate> 
    <DataTemplate> 
    <ViewBox MaxHeight="128" MaxWidth="128"> 
      <Image Source="{Binding }"/> 
     </ViewBox>          
    </DataTemplate> 
</ListBox.ItemTemplate> 

당신의 ViewBox 당신을 위해 모든 가능성이 크기 조정 문제를 처리하고 이미지가 여전히 당신이 원하는만큼 선명 나와 이쪽으로.

희망이 도움이됩니다.

+0

나는 확실히 이것을 시험해야 할 것이다. 또한 센터를 표시하도록 이미지를 잘라 내고이 상황의 종횡비에 따라 너비 또는 높이를 줄이면 해당 인스턴스의 ViewBox 매개 변수가 어떻게 수정됩니까? – Matthew

+0

ViewBox가 자르기에 많은 도움이 될 것이라고 생각하지 않습니다. 모든 유니폼을 만들려는 경우 WriteableBitmap/BitMapSource를 살펴보아야합니다. 여기와 같은 종류의 http://www.kunal-chowdhury.com/2012/12/how-to-crop-image-using-writeablebitmap.html –

+0

나는 본다. 내 응용 프로그램은 잠재적으로 컬렉션에 수백 또는 수천 개의 이미지가있을 수 있기 때문에 자르기 절차를 수행하는 동안 리소스를 사용하여 내 문제가 발생할 것 같아요. Viewbox 방법은 이미지 수정없이 이미지를 동일하게 처리하지만 이미지의 일부만 클립핑하면 쉽게 치수를 수정할 수있는 좋은 방법이었습니다. 궁극적 인 목표는 일관성과 사용자의 즐거움을 위해 ListBox에서 128x128 크기의 이미지를 사각형으로 표시하는 것입니다. – Matthew

관련 문제