2

我在 Star 大小的网格列和 Listbox DataTemplate 中的另一个网格中有一个 Silverlight 5 列表框。

我想要做的是为第二列填充 DataTemplate 网格中的可用空间。如下图所示,它仅填充到所包含文本的范围。

如何获取内容以填充可用空间?

<ListBox x:Name="TopFaultsListBox" Margin="2" ItemsSource="{Binding TopFaults, Mode=OneWay}" 
            ScrollViewer.HorizontalScrollBarVisibility="Disabled" SelectedIndex="-1" Background="{x:Null}" 
            BorderThickness="5" BorderBrush="#FFB1925C" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" VerticalAlignment="Stretch" VerticalContentAlignment="Stretch" >
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid Background="#FFE29826">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition/>
                    <RowDefinition/>
                    <RowDefinition/>
                </Grid.RowDefinitions>
                <TextBlock x:Name="FailureCount" Foreground="Red" FontSize="40" Grid.Row="0" Grid.RowSpan="3" Text="{Binding FaultCount}" Margin="10"/>
                <TextBlock x:Name="AssemblyName" FontSize="20" Text="{Binding AssemblyName}" Grid.Column="1" Grid.Row="1"/>
                <TextBlock x:Name="FaultInformation" FontSize="20" Text="{Binding FaultInformation}" Grid.Column="1" Grid.Row="2"/>
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

在此处输入图像描述

4

1 回答 1

3

您需要在 ListBox 中指定 并将HorizontalContentAlignmentItemContainerStyle设置为Stretch。默认值为左。

<ListBox.ItemContainerStyle>
  <Style TargetType="ListBoxItem">
    <Setter Property="HorizontalContentAlignment" Value="Stretch" />
  </Style>
</ListBox.ItemContainerStyle>
于 2012-12-18T07:44:28.110 回答