水平堆叠面板上列表项之间的间距

本文关键字:之间 列表 水平 | 更新日期: 2023-09-27 18:08:00

我如何控制来自投标'速记'的项目之间的空间量?目前,我之间的差距似乎取决于"速记"本身的值的大小(因此,如果值是1个字符,它与下一个值之间的差距比如果值是2个字符长)。

我试着在不同的地方把边距和内边距设置为零,但无济于事。

<ListView ItemsSource="{Binding Rounds}" IsItemClickEnabled="False" ItemClick="ItemView_ItemClick" ContinuumNavigationTransitionInfo.ExitElementContainer="True">
    <ListView.ItemTemplate>
        <DataTemplate >
            <StackPanel>
                <TextBlock Style="{ThemeResource ListViewItemSubheaderTextBlockStyle}">
                    <Run Text="Round "/>
                    <Run Text="{Binding RoundNumber}" />
                </TextBlock>
                <ListView ItemsSource="{Binding Formations}" >
                    <ListView.ItemsPanel>
                        <ItemsPanelTemplate>
                            <StackPanel Orientation="Horizontal" />
                        </ItemsPanelTemplate>
                    </ListView.ItemsPanel>
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Shorthand}"  Style="{ThemeResource ListViewItemTextBlockStyle}" />
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </StackPanel>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

水平堆叠面板上列表项之间的间距

我不确定在Template的边距/填充设置的位置。作为一种解决方法,您可以尝试将负Margin设置为ItemContainerStyle:

<ListView Name="myList">
     <ListView.ItemContainerStyle>
          <Style TargetType="ListViewItem">
              <Setter Property="Margin" Value="0,0,0,-20" />
          </Style>
     </ListView.ItemContainerStyle>
// rest of the code

ListViewItemView第一次出现是内联定义的。因此,当设置ItemSource时,ItemTemplate将应用于每个项目。

ListView.ItemTemplate包含Binding Shorthand。将其放置在Grid中,并为DataTemplate定义Grid.ColumnDefinitions的Width="Auto"或"*"

StackPanel可以帮助它更好地定位。您将不得不调整网格定义以满足所需的显示要求。

   <DataTemplate>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <StackPanel Grid.Column="0" VerticalAlignment="Top" Margin="10,0,0,0">
                <TextBlock Text="{Binding Shorthand}"  Style="{ThemeResource ListViewItemTextBlockStyle}" />
            </StackPanel>
        </Grid>
    </DataTemplate>