0

我有一个包含 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 占用了可用空间,但它不会渲染到我需要垂直滚动条才能看到所有内容的第二行?

4

1 回答 1

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()); 
            }
        }
    }
}
于 2012-08-06T19:48:10.863 回答