2011-10-27 5 views
0

안녕하세요, ListBox에 대한 많은 질문이 있었고 DataTemplate에 대한 전체 공간을 채우고 있지만 여전히 어떤 것도 작동하지 않습니다. 내가 가진 것은 ListBox이고 DataTemplate에는 UserControl이 있습니다. 공간을 채우기 위해 데이터를 늘리려면 UserControl을 어떻게 얻을 수 있습니까?ListBox 항목을 전체 공간에 채우려면 어떻게해야합니까?

MainWindow를 XAML은 니펫을 :

<ListBox x:Name="ConfiguredItemsList"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <local:ConfiguredItem DataContext="{Binding}" HorizontalContentAlignment="Stretch" /> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 

UserControl을 XAML은 니펫을 :

<UserControl.Resources> 
    <local:ImagePathConverter x:Key="ImagePathConverter"/> 
</UserControl.Resources> 
<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="75" /> 
    </Grid.ColumnDefinitions> 
    <Grid Grid.Column="0"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="*" /> 
      <RowDefinition Height="*" /> 
      <RowDefinition Height="*" /> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="100" /> 
      <ColumnDefinition Width="*" /> 
     </Grid.ColumnDefinitions> 

     <TextBlock Grid.Row="0" Grid.Column="0" x:Name="NameLabel" Text="Name:" /> 
     <TextBlock Grid.Row="0" Grid.Column="1" x:Name="tbName" Text="{Binding Path=Name}" /> 
     <TextBlock Grid.Row="1" Grid.Column="0" x:Name="DescriptionLabel" Text="Description: " /> 
     <TextBlock Grid.Row="1" Grid.Column="1" x:Name="Description" Text="{Binding Path=Description}" /> 
     <TextBlock Grid.Row="2" Grid.Column="0" x:Name="TimeLabel" Text="Time:" /> 
     <TextBlock Grid.Row="2" Grid.Column="1" x:Name="Time" Text="{Binding Path=ChangeTime, StringFormat={}{0:h:mm tt}}" />    
    </Grid> 

    <Border Grid.Column="1" BorderThickness="1" BorderBrush="Black"> 
     <Image Source="{Binding Path=WallpaperInfo, Converter={StaticResource ImagePathConverter}}" /> 
    </Border> 
</Grid> 
+2

[다음과 같이] 시도 했습니까 (http://stackoverflow.com/questions/6188371/fill-grid-width-inside-a-listbox/6188604#6188604) 또는 봤습니까? 그게 도움이되지 않았 니? –

+0

[ListBox의 ItemTemplate을 가로로 늘려 ListBox의 전체 너비를 늘리는 방법] (http://stackoverflow.com/questions/838828/how-to-get-a-listbox-itemtemplate-to-stretch) -horizontally-the-full-width-of-the) –

+0

@HB 아니, 권자. 감사! – Travyguy9

답변

2

당신이 목록 상자 수준에 스트레칭 HorizontalContentAlignment을 설정하려고 있나요?

<ListBox x:Name="ConfiguredItemsList" HorizontalContentAlignment="Stretch"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <local:ConfiguredItem DataContext="{Binding}"/> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
</ListBox> 

: 나는 ListBox 대신 ItemHorizontalContentAlignment 속성을 설정했습니다.

관련 문제