1

메트로 앱에 다음 코드가 있습니다. listview는 객체 목록에 바인딩됩니다. 내 문제는 WrapGrid 그들을 같은 너비를 할당합니다. 그러나 일부 타이틀은 다른 타이틀보다 길기 때문에 너비를 자동으로 설정해야합니다. 하지만이 일은 .. 아무도 모른다.ListView (메트로)의 WrapPanel

<ListView> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
     <StackPanel Orientation="Horizontal" > 
       <TextBlock Text="{Binding Title}"/> 
      </StackPanel> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
    <ListView.ItemsPanel> 
     <ItemsPanelTemplate> 
      <WrapGrid Orientation="Horizontal" /> 
     </ItemsPanelTemplate> 
    </ListView.ItemsPanel> 
</ListView> 

답변

1

나는 그것이 WrapGrid 아니라 생각하지만 ListViewItem이/ItemContainerStyle을 통해 ListView를 자체가 그들에게 같은 크기로 만드는. 나는 거기에 실제로 해결 방법이 있다고 생각하지 않는다. 자신 만의 ItemsControl 및 사용자 정의 패널을 사용하거나 각 항목의 원하는 크기를 계산할 수 있습니다. - 원하는 크기에 맞게 RowSpan/ColumnSpan을 적절하게 설정하여 VariableSizedWrapGrid와 같은 항목에 항목을 넣을 수 있습니다. 그 외에도 모든 항목을 모든 항목에 맞게 넓게 만들거나 사용자가 항목을 클릭하면 내용을 간단히 클립으로 잘라 전체보기를 상세보기에 표시 할 수 있습니다.

2

이것은 나를 위해 작동 : 여기

<ListView.ItemsPanel> 
    <ItemsPanelTemplate> 
     <WrapGrid ItemWidth="250" ItemHeight="80" MaximumRowsOrColumns="7" VerticalAlignment="Center" HorizontalAlignment="Center" /> 
    </ItemsPanelTemplate> 
</ListView.ItemsPanel> 

중요한 점은 MaximumRowsOrColumns 속성입니다. 재미있게 보내세요 :)