ListViewItem не розтягнеться на ширину ListView


82

Зараз я розробляю додаток для магазину Windows 8 за допомогою XAML, але у мене незначна проблема з розмірами. У мене є ListView з DataTemple.

Код для мого ListView і DataTemplate наведено нижче:

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

Подання списку знаходиться в межах колонки сітки з фіксованою шириною 240.

Коли відображається подання, ListViewItems не розтягуються на ширину ListView. Я спробував встановити численні властивості, включаючи HorizontalContentAlignment, але, здається, я не можу розтягнути ListViewItem!

Хто-небудь може допомогти?

Заздалегідь спасибі.

Я використовую Visual studio 2012, C # 4.5 і розробляю додаток для магазину Windows.

Відповіді:


198

Спробуйте додати наступне до визначення ListView

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    </Style>
</ListView.ItemContainerStyle>

1
Помилка: Помилка шляху BindingExpression: властивість 'Width' не знайдено у Project.CustomElement, Project.WindowsPhone, Версія = 1.0.0.0, Культура = нейтральна, PublicKeyToken = null '. BindingExpression: Path = 'Width' DataItem = Project.CustomElement, Project.WindowsPhone, Версія = 1.0.0.0, Культура = нейтральна, PublicKeyToken = null '; цільовим елементом є 'Windows.UI.Xaml.Controls.Grid' (Name = 'null'); цільовою властивістю є «Ширина» (тип «Double»)
Black Cid

2
Для елементів у DataTemplate, які не розтягуються автоматично на повну ширину, як, наприклад, Grid, вам потрібно додатково встановити HorizontalAlignment = "Stretch"
типу

Я також хотів би додати коментар, що мені не вдалося змусити це працювати, коли я також встановив HorizontalAlignment = "Left", але коли я його видалив, це спрацювало як шарм!
Andreas Forslöw
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.