列表未填充“堆栈”面板中的最大空间

时间:2012-01-30 22:29:54

标签: wpf listbox panel stackpanel

我有以下代码,我认为List应该填写堆栈面板占用的整个空间,我尝试使用Grid但它没有用。

<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" DockPanel.Dock="Top">
        <ListBox x:Name="substanceList" ItemsSource="{Binding Source={StaticResource symTable}}" DockPanel.Dock="Top" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
            <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch"/>
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="{Binding Name, Mode=TwoWay}" VerticalAlignment="Center"/>
                        <TextBox Text="{Binding Count,  Converter={StaticResource stringToIntConverter}, Mode=TwoWay}" VerticalAlignment="Center" BorderThickness="0"/>
                        <Separator/>
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
        <Button x:Name="graphButtonStackPanel" Content="Graph" Click="graphButtonStackPanel_Click" DockPanel.Dock="Top" HorizontalAlignment="Right"/>
    </StackPanel>

2 个答案:

答案 0 :(得分:5)

StackPanels堆叠内容,如果您希望拉伸内容使用Grid。 e.g。

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition /> <!-- Takes remaining space -->
        <ColumnDefinition Width="Auto"/> <!-- Resizes to content -->
    <Grid.ColumnDefinitions>
    <!-- ... -->
</Grid>

答案 1 :(得分:1)

堆叠面板增长以适应其内容,而不是相反。

可能只是因为没有足够的内容来填补您的可用空间。