ListViewItem, ListView genişliğine kadar uzanmayacak


81

Şu anda XAML kullanarak bir Windows 8 mağazası uygulaması tasarlıyorum ancak küçük bir boyutlandırma sorunum var. DataTemple ile bir ListView var.

ListView & DataTemplate kodum aşağıdadır:

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

Liste görünümü, sabit genişliği 240 olan bir ızgara sütunu içindedir.

Görünüm görüntülendiğinde, ListViewItems ListView genişliğine kadar uzanmaz. HorizontalContentAlignment dahil çok sayıda özelliği ayarlamayı denedim, ancak ListViewItem'in esnemesini sağlayamıyorum!

Biri yardım edebilir mi?

Şimdiden teşekkürler.

Visual studio 2012, C # 4.5 kullanıyorum ve bir Windows mağazası uygulaması geliştiriyorum.

Yanıtlar:


197

Aşağıdakileri ListView tanımınıza eklemeyi deneyin

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

1
Hata: BindingExpression yol hatası: Project.CustomElement, Project.WindowsPhone, Sürüm = 1.0.0.0, Kültür = nötr, PublicKeyToken = boş 'üzerinde' Genişlik 'özelliği bulunamadı. BindingExpression: Yol = 'Genişlik' DataItem = Project.CustomElement, Project.WindowsPhone, Sürüm = 1.0.0.0, Kültür = nötr, PublicKeyToken = null '; hedef öğe 'Windows.UI.Xaml.Controls.Grid' (Ad = 'null'); target özelliği 'Genişlik' (tip 'Çift') 'dir
Siyah Cid

2
Örneğin, Grid gibi tam genişliğe otomatik olarak uzatılmayan DataTemplate öğelerinde, ek olarak HorizontalAlignment = "Stretch" ayarlamanız gerekir
tipa

Ayrıca HorizontalAlignment = "Left" ayarını yaptığımda da bunu çalıştıramayacağıma dair bir yorum eklemek isterim, ancak onu kaldırdığımda bir cazibe gibi çalıştı!
Andreas Forslöw
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.