Comment puis-je étendre le contenu de chaque ListView
élément à 100% de largeur lorsque j'utilise un DataTemplate
?
J'ai essayé HorizontalContentAlignment="Stretch"
dans les ListView
et HorizontalAlignment="Stretch"
dans le DataTemplate
, mais rien ne semble fonctionner, le contenu est toujours aligné à gauche.
J'ai quelque chose comme ça:
<ListView x:Name="questionsView" Background="{StaticResource ApplicationPageBackgroundThemeBrush}" HorizontalContentAlignment="Stretch">
<ListView.ItemTemplate>
<DataTemplate>
<Border Background="BlueViolet" HorizontalAlignment="Stretch">
<Grid HorizontalAlignment="Stretch">
<TextBlock Text="{Binding}" />
<TextBlock HorizontalAlignment="Right">16 minutes ago</TextBlock>
</Grid>
</Border>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Je suppose qu'il y a une couche de plus entre le ListView
et le ItemTemplate
.
J? ai compris. Réglage du ListView.ItemContainerStyle
avec un setter HorizontalContentAlignment
fait l'affaire. C'est à dire.:
<ListView x:Name="questionsView" Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<ListView.ItemTemplate>
<DataTemplate>
<Border Background="BlueViolet">
<Grid HorizontalAlignment="Stretch" Margin="0">
<TextBlock Text="{Binding}" />
<TextBlock HorizontalAlignment="Right">16 minutes ago</TextBlock>
</Grid>
</Border>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListView.ItemContainerStyle>
</ListView>
Définissez la propriété du conteneur d'élément de HorizontalContentAlignment sur Stretch, essayez ceci
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListView.ItemContainerStyle>
Ce qui est important ici, c'est le ScrollViewer.HorizontalScrollBarVisibility
, TextWrapping
et ItemContainerStyle
avec HorizontalContentAlignment
. Le reste est duveteux.
<ListView VerticalAlignment="Stretch"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Prop1}" TextWrapping="Wrap"/>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListView.ItemContainerStyle>
</ListView>