【发布时间】:2013-04-23 19:05:06
【问题描述】:
所以,我在列表视图中遇到间距问题,这是我的代码:
<ListView Width="300" ItemsSource="{Binding ChosenDepartment.HoursList}" Grid.Row="1" Grid.Column="1" Margin="100,0,0,0" IsItemClickEnabled="False" SelectionMode="None">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Width="125" Text="{Binding Day}" Style="{StaticResource BasicTextStyle}" FontWeight="Bold"/>
<TextBlock Width="160" Text="{Binding Time}" Style="{StaticResource BasicTextStyle}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="0"/>
</Style>
</ListView.ItemContainerStyle>
</ListView>
无论我做什么,StackPanel 下方在ListItems 之间都有间距。足够的空间容纳两行文本。事实上,如果TextBlock 中的文本换成两行,它会完美地填充ListViewItem。
我可以在所有TextBlocks 上调整边距和Padding,但它什么也没做。影响ListView 项目高度的唯一方法是如果我将高度属性添加到ItemContainerStyle。如果我硬编码Height,它会影响它,但当然,我不想硬编码Height。
【问题讨论】:
-
BasicTextStyle是什么? -
这必须是我在整个应用程序中使用的稍微改变的自定义文本样式。但是,我已经完全删除了该样式,以查看它是否改变了任何东西,但它没有。
-
您是否尝试过使用Snoop?这也很棒,它可以更容易地找到额外的填充来自哪里(除其他外)。
标签: xaml windows-8 microsoft-metro