2013-09-05 3 views
29

DataTemplate을 사용할 때 각 ListView 항목의 콘텐츠를 100 % 너비로 확장하려면 어떻게해야합니까?ListView ItemTemplate 100 % 너비

나는 DataTemplateListViewHorizontalAlignment="Stretch"에서 HorizontalContentAlignment="Stretch"을 시도했지만 아무것도 작동하는 것 같다 없다는 내용은 여전히 ​​왼쪽으로 정렬됩니다. 나는 ListViewItemTemplate 사이에 또 ​​하나의 레이어가 생각

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

:

나는 이런 식으로 뭔가가있다.

답변

71

알겠습니다. HorizontalContentAlignment 세터로 ListView.ItemContainerStyle을 설정하면 트릭이 만들어집니다. 즉 .:

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

나 :( – uSeRnAmEhAhAhAhAhA

+0

위해 작동하지 않았다? 내 트릭은, 내가 항상 확장되지 제어되는 볼 컬러 배경을 사용합니다. – kiewic

+1

+1 근무 – brouckaertd

3

스트레칭하는 의 항목 컨테이너의 재산 HorizontalContentAlignment, 이것은 여기서 중요한 것은 ScrollViewer.HorizontalScrollBarVisibility, TextWrappingHorizontalContentAlignmentItemContainerStyle입니다

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

당신은 wr입니다. 옹약. VerticalContentAlignment 대신 HorizontalContentAlignment가되어야합니다. – Ryan

+1

확인 됨 : 작동합니다. 건배! – SimonC

3

시도 설정합니다. 나머지는 보풀입니다.

<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> 
당신이 DataTemplate을? 그리드로 사용을 제어
+0

ItemContainerStyle이 나를 위해 일했습니다! 고마워 친구! –