如何将DataTemplate宽度设置为Listbox的宽度?

时间:2012-04-05 14:15:25

标签: wpf

以下是MSDN的示例。

<GroupStyle>
  <GroupStyle.ContainerStyle>
    <Style TargetType="{x:Type GroupItem}">
      <Setter Property="Margin" Value="0,0,0,5"/>
      <Setter Property="Template">
        <Setter.Value>
          <ControlTemplate TargetType="{x:Type GroupItem}">
            <Expander IsExpanded="True" BorderBrush="#FFA4B97F" 
                      BorderThickness="0,0,0,1">
              <Expander.Header>
                <DockPanel>
                  <TextBlock FontWeight="Bold" Text="{Binding Path=Name}" 
                             Margin="5,0,0,0" Width="100"/>
                  <TextBlock FontWeight="Bold" 
                             Text="{Binding Path=ItemCount}"/>
                </DockPanel>
              </Expander.Header>
              <Expander.Content>
                <ItemsPresenter />
              </Expander.Content>
            </Expander>
          </ControlTemplate>
        </Setter.Value>
      </Setter>
    </Style>
  </GroupStyle.ContainerStyle>
</GroupStyle>

如何让它占据列表框的整个宽度? (Horizo​​ntalScrollBar被禁用)? 我真正需要的是DockPanel的拉伸。

1 个答案:

答案 0 :(得分:1)

您必须在项目中包含PresentationFramework.Aero的参考。 在ListBox之后,您必须插入此属性:

<ListBox 
    xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
    HorizontalContentAlignment="Stretch"
>
</ListBox>