2016-04-04 32 views
0

我有一个ListBox和一个ItemsControl绑定到我的视图模型中的一个集合。我试图在DataTemplate中的网格列上使用星形尺寸,并将该列中的元素(进度条)设置为伸展。这通常会占用网格中所有可用的水平空间,但嵌套在ItemsControl中似乎不是这种情况。我已经在&上做了一些阅读,似乎已经知道使用这些控件的问题。有针对这个的解决方法吗?明星大小ItemsControl中的网格列?

<ListBox> 
    <ItemsControl ItemsSource="{Binding WebMappingSourcesCollection}"> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Grid 
        ShowGridLines="True" 
        Grid.IsSharedSizeScope="true" 
        > 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="Auto"/> 
         <ColumnDefinition Width="Auto"/> 
         <ColumnDefinition Width="*"/> 
         <ColumnDefinition Width="Auto"/> 
        </Grid.ColumnDefinitions> 

        <CheckBox 
         Grid.Column="0" 
         HorizontalAlignment="Center" /> 
        <TextBlock 
         Grid.Column="1" 
         Text="{Binding Name}"/> 
        <ProgressBar Grid.Column="2" 
         Minimum="0" 
         Maximum="100" 
         Value="30" 
         HorizontalContentAlignment="Stretch"               
         HorizontalAlignment="Stretch"  
         MaxHeight="15" 
        /> 
        <!-- etc. etc. --> 
+0

您是否在ListBox上尝试了'Horizo​​ntalContentAlignment =“Stretch”'? –

+0

不幸的是,没有运气。在列表框外工作良好 – Hardgraf

+2

通过ItemContainerStyle中的样式设置器在父列表框和ListBoxItem上使用相同的结果? –

回答

2

尝试通过给ItemContainerStyle下面一样在你的列表框项目设置HorizontalContentAlignment

<ListBox> 
    <ListBox.ItemContainerStyle> 
     <Style TargetType="ListBoxItem"> 
      <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
     </Style> 
    </ListBox.ItemContainerStyle> 
</ListBox> 
+1

哈哈,是啊,像这样.. +1 –