在使用ListView的时候,默认情况下ItemTemplate不能占满ListView的宽度。

最简单的办法就是添加 HorizontalContentAlignment="Stretch" 到ListView。

<ListView 
    VirtualizingPanel.ScrollUnit="Pixel"
    ItemTemplate="{StaticResource NavigationItemTemplate}">
    <!-- 关键代码 -->
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
        </Style>
    </ListView.ItemContainerStyle>
</ListView>
<!-- 定义ListView的ItemTemplate -->
<DataTemplate x:Key="NavigationItemTemplate">
    <Grid Background="{DynamicResource SystemControlBackgroundAltHighBrush}"
          Margin="-5,0,-5,0" Height="80" Width="290"
          AutomationProperties.Name="{Binding Title, Mode=OneTime}">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="50" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <!-- 你的ListItem布局 -->
        </Grid>
    </Grid>
</DataTemplate>
  • [UWP][XAML] ListView child item not using full width
  • ListViewItem won't stretch to the width of a ListView
  • WPF让ListView的ItemTemplate占有100%的宽度
  • 分类:
    前端
    标签: