水平Stackpanel上ListItem之间的间距

时间:2014-06-11 07:45:57

标签: c# xaml windows-phone-8.1

如何控制来自Biding'Rethand'的物品之间的空间量?目前我之间的差距似乎取决于“速记”本身的值的大小(因此,如果值为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>

2 个答案:

答案 0 :(得分:3)

我不确定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

答案 1 :(得分:0)

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

ListView.ItemTemplate包含Binding Shorthand。将其放在Grid中,并将Grid.ColumnDefinitions定义为宽度=&#34;自动&#34;或&#34; *&#34; DataTemplate

StackPanel可能有助于更好地定位它。您必须根据所需的显示要求调整Grid defs。

   <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>