C# 如何在窗口中保留特定的xaml元素(这样它就不会从底部溢出)
作为评估的一部分,我正在尝试制作一个简单的发票应用程序。我制作了一个包含所有请求项的列表框接口。但是,当我添加了太多的项目时,列表框就会从窗口底部流过,我必须调整窗口的大小以适应它 我尝试了dockpanel,并将stackpanel分配给网格本身。如果我设置了一个固定的高度,它似乎会像预期的那样工作 以下是列表框的xaml:C# 如何在窗口中保留特定的xaml元素(这样它就不会从底部溢出),c#,xaml,C#,Xaml,作为评估的一部分,我正在尝试制作一个简单的发票应用程序。我制作了一个包含所有请求项的列表框接口。但是,当我添加了太多的项目时,列表框就会从窗口底部流过,我必须调整窗口的大小以适应它 我尝试了dockpanel,并将stackpanel分配给网格本身。如果我设置了一个固定的高度,它似乎会像预期的那样工作 以下是列表框的xaml: <StackPanel Grid.Column="1" Grid.Row="0" ClipToBounds="True"> <L
<StackPanel Grid.Column="1" Grid.Row="0" ClipToBounds="True">
<ListBox Name="Shirts" HorizontalContentAlignment="Stretch" ScrollViewer.VerticalScrollBarVisibility="Visible" Margin="5" ClipToBounds="True">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<Run Text="{Binding ShirtSize}" />
<Run Text="{Binding ShirtStyle}" />
<Run Text="{Binding ShirtColour}" />
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Button Content="Print Invoice" Margin="5" ClipToBounds="True"/>
</StackPanel>
我希望代码能像这样工作,它不是固定高度的,但它可以作为一个例子
它实际上是如何工作的。
使用DockPanel而不是StackPanel,它应该工作得更好。无论容器大小如何,StackPanel都会随着内容的增长而增长。DockPanel将考虑容器大小并填充可用空间。先按Dock=Bottom的顺序放置按钮,然后按Dock=Fill的顺序放置列表框。列表将在按钮上方排列,即使在按钮之后声明,哪个有点不直观是我还是两个附加的图像相同?列表框和许多其他wpf控件将根据其内容尽可能调整自身大小,除非您设置其宽度和/或高度。要动态限制高度,可以将ListBox.height或MaxHeight绑定到其他元素的实际高度。