我需要的ItemsControl必须有this appearance

对于ItemsPanel,我设置了一个水平方向的StackPanel。
<Style TargetType="local:ParameterItemContainer">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:ParameterItemContainer">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<ItemsPresenter Margin="{TemplateBinding Margin}" />
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>ParameterItemContainer由ItemsControl派生而来。
不知道如何正确地实现模板以获得与我的屏幕截图相同的外观,或者我是否必须重写一个函数来设置正确的布局?
发布于 2013-05-10 22:09:40
我不知道你说的"Floating ItemsControl"是什么意思,但是,如果你只想在ItemsControl中一次显示6个项目的行,你可以用Orientation="Vertical"将ItemsPanelTemplate设置为WrapPanel,并给它一个高度,无论6x项目是什么。
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical" Height="300" />
</ItemsPanelTemplate>这将使WPF绘制项垂直,直到它达到高度限制,然后它将水平换行到新列以继续绘制项。
https://stackoverflow.com/questions/16482324
复制相似问题