2013-06-03 2 views
6

나는 혼자 알아낼 수없는 동안 도움을 요청해야합니다. GUI가 대부분 동적으로 생성되는 WPF-XAML 데스크톱 응용 프로그램에서 작업하고 있습니다.WPF XAML WrapPanel ListBox 항목 행에

내 쿼리는 ListBox 항목으로 WrapPanel의 스타일을 고려합니다. 코드 위

<DockPanel x:Name="xResultPanel"> 
    <ListView x:Name="bResultPanel" ItemsSource="{Binding ResultList, UpdateSourceTrigger=PropertyChanged}"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
     <Expander Header="{Binding GroupName}" Style="{DynamicResource FeatureExpander2}"> 
      <WrapPanel ItemWidth="140" Orientation="Horizontal"> 
      <ListBox x:Name="ListOfTiles" ItemsSource="{Binding VideoSamples}"> 
       <ListBox.ItemTemplate> 
       <DataTemplate> 
        <StackPanel Width="120" Margin="10" HorizontalAlignment="Left"> 
        <Image /> 
        <TextBlock /> 
        </StackPanel 
       </DataTemplate> 
       </ListBox.ItemTemplate> 
      </ListBox> 
      </WrapPanel> 
     </Expander> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
    </ListView> 
</DockPanel> 

이 목록 상자 항목이 연속되지되게 반환하지만 새로운 라인의 각 항목 :

은 (.xaml) 내 UserControl에서 코드의 조각을 찾아주세요. WrapPanel과 ListBox에 대해 MinWidth, Width 등을 설정하려했지만 결과가 없습니다.

WrapPanel이 콘텐츠를 가로로 채우도록하는 방법에 대한 모든 관련 팁을 미리 감사드립니다.

답변

11

WrapPanel에는 자식이 하나만 있습니다. 즉, ListBox입니다. 즉, 레이아웃은 ItemsPanel 템플릿 ListBox에 의해 수행됩니다.

이 대신보십시오 :

<Expander Header="{Binding GroupName}" Style="{DynamicResource FeatureExpander2}"> 
     <ListBox x:Name="ListOfTiles" ItemsSource="{Binding VideoSamples}"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
      <StackPanel Width="120" Margin="10" HorizontalAlignment="Left"> 
       <Image /> 
       <TextBlock /> 
      </StackPanel> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
     <ListBox.ItemsPanel> 
      <ItemsPanelTemplate> 
      <WrapPanel /> 
      </ItemsPanelTemplate> 
     </ListBox.ItemsPanel> 
     </ListBox> 
    </Expander> 
+0

감사를 너무 많이, 다니엘! 그것은 내 문제를 해결 :) – zyjespox