我有一个包含2个子控件的网格。我有一个简单的堆栈面板和一个将驻留在网格中的ListBox:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="5" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ListBox Name="lstGroups" Grid.Row="0" />
<StackPanel Grid.Row="2" />
<Grid>
问题是我的ListBox渲染超过了分配给网格的可视屏幕区域。如何确保我的ListBox占用可用空间,但是它不会渲染到第二行,我需要一个垂直滚动条来查看所有内容?
答案 0 :(得分:0)
你可能应该使用DockPanel。此外,您可以以编程方式设置列表框的高度,但这不是一个非常干净的方法。
<Window x:Class="MobilWPF.Windows.testWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="testWindow" Height="300" Width="300">
<DockPanel>
<StackPanel DockPanel.Dock="Bottom" >
<TextBlock Text="blah"/>
</StackPanel>
<ListBox Name="lstGroups" />
</DockPanel>
</Window>
namespace MobilWPF.Windows
{
/// <summary>
/// Interaction logic for testWindow.xaml
/// </summary>
public partial class testWindow : Window
{
public testWindow()
{
InitializeComponent();
for (int i = 0; i < 200; i++)
{
lstGroups.Items.Add(i.ToString());
}
}
}
}