web-dev-qa-db-fra.com

ListViewItem ne s'étendra pas à la largeur d'un ListView

Je suis en train de concevoir une application Windows 8 Store en utilisant XAML mais j'ai un problème de dimensionnement mineur. J'ai un ListView avec un DataTemple.

Le code de mon ListView & DataTemplate est ci-dessous:

<ListView x:Name="listPageItems"
          Grid.Row="1"
          SelectionMode="Extended"
          IsSwipeEnabled="False"
          ItemsSource="{Binding Mode=OneWay, Source={StaticResource items}}"
          ItemTemplate="{StaticResource NavigationItemTemplate}"
          ScrollViewer.VerticalScrollBarVisibility="Visible">

</ListView>

<DataTemplate x:Key="NavigationItemTemplate">    
        <Grid Height="75">
            <Grid.RowDefinitions>
                <RowDefinition Height="1.6*" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
            <Rectangle Fill="White" />
            <Rectangle Fill="{StaticResource SSEGreenBrush}"
                       Grid.Row="1" />
            <Border BorderThickness="2"
                    BorderBrush="{StaticResource SSEGreenBrush}"
                    Grid.RowSpan="2" />
            <TextBlock x:Name="textTitle"
                       Text="{Binding ClientName}"
                       Style="{StaticResource TitleTextStyle}"
                       Foreground="{StaticResource SSEBlueBrush}"
                       Margin="10,5,5,5" />
            <StackPanel Orientation="Horizontal"
                        Grid.Row="1"
                        HorizontalAlignment="Stretch">
                <TextBlock Text="Last Edit :"
                           Style="{StaticResource SubtitleTextStyle}"
                           Foreground="{StaticResource SSEBlueBrush}"
                           Margin="3,0,0,3"
                           VerticalAlignment="Center" />
                <TextBlock Text="SurveyDate"
                           Style="{StaticResource SubtitleTextStyle}"
                           Foreground="{StaticResource SSEBlueBrush}"
                           Margin="3,0,0,3"
                           VerticalAlignment="Center" />
            </StackPanel>
        </Grid>
    </DataTemplate>

La vue de liste se trouve dans une colonne de grille d'une largeur fixe de 240.

Lorsque la vue est affichée, les ListViewItems ne s'étendent pas à la largeur de ListView. J'ai essayé de définir de nombreuses propriétés, notamment HorizontalContentAlignment, mais je n'arrive pas à obtenir le ListViewItem pour s'étirer!

Quelqu'un peut-il aider?

Merci d'avance.

J'utilise Visual studio 2012, C # 4.5 et je développe une application Windows Store.

79
Sun

Essayez d'ajouter ce qui suit à votre définition ListView

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    </Style>
</ListView.ItemContainerStyle>
194
Jim O'Neil