我有一堆Listpanel內的水平方向的ListView。我希望列表一旦到達Stackpanel的末尾就進行封裝。Windows 8.1 XAML Wrap Stackpanel Children
這對我來說似乎很容易,但我似乎無法弄清楚如何。
我有一堆Listpanel內的水平方向的ListView。我希望列表一旦到達Stackpanel的末尾就進行封裝。Windows 8.1 XAML Wrap Stackpanel Children
這對我來說似乎很容易,但我似乎無法弄清楚如何。
StackPanel
不換行。相反,請看WrapGrid
。
您無法使用StackPanel
作爲容器。通常我使用Grid
作爲父容器。它更靈活。
事情是這樣的:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ListView Grid.Column="0"/>
<ListView Grid.Column="1"/>
<ListView Grid.Column="2"/>
</Grid>
你可以用一個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>
這裏是在衆目睽睽之下
和包裹查看您的想法
感謝的結果。所以我不知道這將如何工作和包裝給定的寬度。你可以給我一個例子嗎?我已更新我的帖子以顯示我要去的內容。 – aherrick
哦,我只是現在看到你的「素描」。我以爲你有一個固定數量的'ListView'元素。我的答案只有在你知道你需要的'ListView'元素的多少行和列的時候纔有效 – letiagoalves