Unexpected Behaviour ItemsControl Template/ItemTemplate
I would like to present a summary list side by side, so I created a small ItemsControl to achieve that goal:
<ItemsControl x:Name="GRS">
<ItemsControl.Template>
<ControlTemplate>
<StackPanel Orientation="Horizontal" Margin="10">
<StackPanel Orientation="Vertical">
<TextBlock Text="Round" FontSize="20" />
<TextBlock Text="Food" FontSize="20" />
<TextBlock Text="Harvest" FontSize="20" />
<TextBlock Text="State" FontSize="20" />
<TextBlock Text="Private" FontSize="20" />
<TextBlock Text="Value" FontSize="20" />
<TextBlock Text="Type" FontSize="20" />
</StackPanel>
<ItemsPresenter />
</StackPanel>
</ControlTemplate>
</ItemsControl.Template>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border Margin="10" BorderBrush="Black" BorderThickness="2">
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Path=RoundNumber}" FontSize="20" />
<TextBlock Text="{Binding Path=PlayerAndModusSetting.FoodCost}" FontSize="20" />
<CheckBox IsChecked="{Binding Path=IsHarvest}" FontSize="20" />
<TextBlock Text="{Binding Path=PlayerAndModusSetting.StateBuildProject}" FontSize="20" />
<TextBlock Text="{Binding Path=PlayerAndModusSetting.PrivateBuildProject}" FontSize="20" />
<TextBlock Text="{Binding Path=Value}" FontSize="20" />
<TextBlock Text="{Binding Path=ShipType}" FontSize="20" />
</StackPanel>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
When I开发者_Go百科 set the ItemsSource & run, the result is the lists orientated vertically instead of horizontally.
As you can see, the first one is side by sidem but after that, it continues downwards, and I can't tell why.
Thanks.
The parent control of your Item Template is a StackPanel
- each item is a StackPanel
, contained within a StackPanel
- you need to change the container around your ItemsPresenter
to WrapPanel
if you want it to tile horizontally.
Example:
</StackPanel>
<WrapPanel>
<ItemsPresenter />
</WrapPanel>
</StackPanel>
精彩评论