我有以下代码,我认为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>
答案 0 :(得分:5)
StackPanels
堆叠内容,如果您希望拉伸内容使用Grid
。 e.g。
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition /> <!-- Takes remaining space -->
<ColumnDefinition Width="Auto"/> <!-- Resizes to content -->
<Grid.ColumnDefinitions>
<!-- ... -->
</Grid>
答案 1 :(得分:1)
堆叠面板增长以适应其内容,而不是相反。
可能只是因为没有足够的内容来填补您的可用空间。