2014-02-27 42 views

回答

2

StackPanel不換行。相反,請看WrapGrid

0

您無法使用StackPanel作爲容器。通常我使用Grid作爲父容器。它更靈活。

事情是這樣的:

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition /> 
     <ColumnDefinition /> 
     <ColumnDefinition /> 
    </Grid.ColumnDefinitions> 

    <ListView Grid.Column="0"/> 
    <ListView Grid.Column="1"/> 
    <ListView Grid.Column="2"/> 
</Grid> 
+0

感謝的結果。所以我不知道這將如何工作和包裝給定的寬度。你可以給我一個例子嗎?我已更新我的帖子以顯示我要去的內容。 – aherrick

+0

哦,我只是現在看到你的「素描」。我以爲你有一個固定數量的'ListView'元素。我的答案只有在你知道你需要的'ListView'元素的多少行和列的時候纔有效 – letiagoalves

0

你可以用一個ItemsControl嘗試並使用WrapGrid作爲其ItemsPanel的模板。這裏是我使用的代碼:

<ItemsControl Width="Auto" Height="Auto" IsHitTestVisible="False" ItemsSource="{Binding AnnotationTypesShown}"> 
      <ItemsControl.ItemTemplate> 
       <DataTemplate> 
        <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Height="50" Width="Auto" Margin="0,0,5,0"> 
         <Image Source="{Binding IconImage}" Stretch="UniformToFill" Margin="0,0,0,0" Width="25" Height="25"/> 
         <TextBlock Text="{Binding TypeName}" Width="Auto" Margin="5,10,5,0" Style="{StaticResource DefaultTextBlockStyle}"></TextBlock> 
        </StackPanel> 
       </DataTemplate> 
      </ItemsControl.ItemTemplate> 
      <ItemsControl.ItemsPanel> 
       <ItemsPanelTemplate> 
        <WrapGrid Orientation="Horizontal" VerticalAlignment="Top"></WrapGrid>       
       </ItemsPanelTemplate> 
      </ItemsControl.ItemsPanel> 
     </ItemsControl> 

這裏是在衆目睽睽之下 enter image description here

和包裹查看您的想法

enter image description here