2014-06-24 3 views
1

나는 목록 상자 안에 이미지를 정렬하기 위해 wrappanel을 사용했지만 이미지 컬렉션에서는 이미지의 크기가 다릅니다. 일부는 수평이며 일부는 수직입니다. 방향이 다르기 때문에 시력이 좋지 않은 이미지 사이에 약간의 공간이 있습니다. 어떤 공간에서이 공간을 없앨 수있는 방법을 제안 할 수 있습니까? 내가 코드를 다음하지만 여전히 문제가 동일 사용하고Windows의 목록 상자에 가변 크기의 이미지를 배열합니다.

감사

enter image description here
...

<ListBox Name="lstBoxMyRecentPhotos" 
             MaxHeight="650" 
             Margin="0,8,0,0" 
             SelectionChanged="lstImageList_SelectionChanged"> 
            <ListBox.ItemsPanel> 
             <ItemsPanelTemplate> 
              <toolkit1:VariableSizedWrapGrid ItemHeight="200" ItemWidth="230" /> 
             </ItemsPanelTemplate> 
            </ListBox.ItemsPanel> 

            <ListBox.ItemTemplate> 
             <DataTemplate> 

              <Border Name="brdr" 
                Margin="5" 
                BorderBrush="White" 
                BorderThickness="3"> 
               <Border.Background> 
                <ImageBrush ImageSource="Images/capsule_image_holder.png" Stretch="Uniform" /> 
               </Border.Background> 
               <Image Width="{Binding width}" 
                 Height="{Binding height}" 
                 Hold="imgRecent_Hold" 
                 Source="{Binding photoUrl}" 
                 Stretch="UniformToFill"> 

               </Image> 
              </Border> 

             </DataTemplate> 
            </ListBox.ItemTemplate> 

           </ListBox> 

답변

1

두 가지 방법

  1. 이미지가 항상 UniformToFill이면 스트레칭 확인하고 사용 하드 코딩 된 크기 - 주어진 공간을 균일하게 채우고 모든 사진을 사용합니다. 그는 공간을 멋지게 부여했습니다.

  2. VariableSizedWrapGrid을 사용하십시오.

는 각 타일/셀 내용을 기준으로 가변 크기가 될 수있는 그리드 스타일의 레이아웃 패널을 제공합니다. WinRT VariableSizedWrapGrid와 유사합니다.

+0

내가 VariableSizedWrapGrid으로 시도했지만 VariableSizedWrapGrid에서 우리는 높이를 미리 정의하고 그래서 내가에서 Andriod에 대한 StaggeredGridView 같은 것을 원하는 동일한 크기의 이미지 –

+0

을 얻고 폭해야 .. :

은 여기 내 구현의 모습입니다 –

1

VariableSizedWrapGrid에 어떤 툴킷을 사용하고 있는지 알 수 없지만 ItemHeight를 설정해야합니까? 네가하지 않으면 어떻게 될까?

저는 개인적으로 Telerik의 컨트롤을 사용하여 WrapGrid를 제공하고 있습니다. 해당 컨트롤에 액세스 할 수있는 경우 예제를 공유 할 수 있습니다.

+0

내가 ItemHeight를 제공하지 않을 때 발생하는 예외 및 처리되지 않은 예외 .. 우리는 Telerik의 컨트롤에 대한 가입을 구매해야하고 새로운 개발자가되어야합니다. 나는 이것을 감당할 수 없다고 생각합니다. 그래서 어떤 대안을 제공 할 수 있습니다. 모든 샘플이 도움이 될 것입니다. –