【发布时间】:2012-08-07 07:39:59
【问题描述】:
我有一个包含 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 占用了可用空间,但它不会渲染到我需要垂直滚动条才能看到所有内容的第二行?
【问题讨论】:
-
ListBox 有最小尺寸吗?样式可能是设置之一。否则,您的代码应该阻止 ListBox 大于 Grid.Height - StackPanel.Height - 5。我假设您打算将 StackPanel 放在第 2 行而不是第 1 行。
-
不,上面的布局是正确的。没有最小值/最大值 - 只有您在此处看到的 xaml。我想要的是将 listBox 包含在第 0 行的查看区域中——问题是它超出了可视区域,这意味着我必须添加一个滚动条并且我不需要任何滚动条。
-
您有三个行定义 - 它们各自的用途是什么?我猜“*”是针对 ListBox 的。您的意思是 StackPanel 在第 2 行而不是第 1 行?
-
是的,抱歉,listBox 在第 0 行,水平 stackPanel 在第 2 行