2014-05-11 4 views
1

이렇게하면 ListView을 사용하여이 작업을 수행 할 수 있습니다.ItemsControl을 세로로 줄이고 가로로 스크롤하는 방법

<ListView ItemsSource="..." 
    ScrollViewer.HorizontalScrollBarVisibility="Auto" 
    ScrollViewer.HorizontalScrollMode="Auto" 
    ScrollViewer.VerticalScrollBarVisibility="Disabled" 
    ScrollViewer.VerticalScrollMode="Disabled" 
    ScrollViewer.ZoomMode="Disabled" 
    SelectionMode="None"> 
    <ListView.ItemsPanel> 
     <ItemsPanelTemplate> 
      <callistoControls:WrapPanel Orientation="Vertical" /> 
     </ItemsPanelTemplate> 
    </ListView.ItemsPanel> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <Button Content="{Binding Title}" Command="..." CommandParameter="..." /> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

나는 비록 ListView의 모든 기능이 필요하지 않습니다. 차라리 템플릿/etc를 다시 실행하여 ListView에있는 원치 않는 모든 기능을 끄는 대신 ItemsControl 항목을 사용하고 싶습니다.

ItemsControl으로 어떻게 해결할 수 있습니까?

+0

당신이 찾고있는 것은'GridView '인 것 같습니다. 'ItemsControl' 또는'ListView'를 사용하여 그것을하고 싶다면, 열쇠는 당신이'ItemsPanel'을 위해 설정 한'WrapPanel'입니다. 내장 된 기능은 비슷한 WrapGrid와 VariableSizedWrapGrid입니다. –

+0

호버에 항목을 강조 표시하는 것과 같은 추가 기능을 모두 원하지 않습니다. 'GridView' 또는'ListView'의 시각적 상태를 변경해야합니다. –

+0

좋은 지적. Jerry의 대답은 좋은 선택입니다. –

답변

1

당신은이 작업을 수행 할 수 있습니다

<ScrollViewer 
    HorizontalScrollBarVisibility="Auto" 
    HorizontalScrollMode="Auto" 
    VerticalScrollBarVisibility="Disabled" 
    VerticalScrollMode="Disabled" 
    ZoomMode="Disabled"> 
    <ItemsControl ItemsSource="..."> 
     <ItemsControl.ItemsPanel> 
      <ItemsPanelTemplate> 
       <callistoControls:WrapPanel Orientation="Vertical" /> 
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Button /> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
</ScrollViewer> 

행운을 빕니다.

+0

완벽하게 작동합니다. 모든 조합을 시도했지만 모든 것을 놓친 것 같습니다. 감사! –

관련 문제