C# 如何在Silverlight 4中设置数据网格的高度
我在一个页面中有两个数据网格,每个数据网格通过以下布局/标记定位:C# 如何在Silverlight 4中设置数据网格的高度,c#,silverlight,silverlight-4.0,C#,Silverlight,Silverlight 4.0,我在一个页面中有两个数据网格,每个数据网格通过以下布局/标记定位: <border BorderBrush="Black"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="30"/> <RowDefinition Height="*"/> <RowDefinition Heigh
<border BorderBrush="Black">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="*"/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
<TextBlock x:Name="Title" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Margin="6,0,0,0" Content="Panel Title"/>
<toolkit:BusyIndicator Grid.Row="1" Grid.Column="0" x:Name="GridLoadingIndicator">
<StackPanel Orientation="Vertical">
<sdk:DataGrid x:name="GVData"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
AutoGenerateColumns="False"
HorizontalScrollBarVisibility="Visible"
SelectionMode="Single">
<datagrid:DataGridTextColumn Header="Column 1" Binding="{Binding Col1}" />
<datagrid:DataGridTextColumn Header="Column 2" Binding="{Binding Col2}" />
<datagrid:DataGridTextColumn Header="Column 3" Binding="{Binding Col3}" />
<datagrid:DataGridTextColumn Header="Column 4" Binding="{Binding Col4}" />
<datagrid:DataGridTextColumn Header="Column 5" Binding="{Binding Col5}" />
</sdk:DataGrid>
</StackPanel>
</toolkit:BusyIndicator>
<StackPanel x:Name="PagerControls" Grid.Row="2" Grid.Column="0" Orientation="Horizontal">
<!-- Pager -->
</StackPanel>
</Grid>
</border>
嗯,问题是网格本身不想拉伸以填充分配给它的空间,而且它也不响应页面大小事件
关于如何解决这个问题有什么想法吗?德里克·贝蒂的评论是正确的 如果您的
网格
位于堆栈面板
内,并且堆栈面板
没有水平对齐=“拉伸”
(即在不增长的方向上),则堆栈面板将适合其子级
这将使网格中的HorizontalAlignment=“Stretch”
无效,因为它只能拉伸到其直接父级(即StackPanel
)。它是一个StackPanel
的事实意味着VerticalAlignment=“Stretch”
在内部网格上没有任何作用
如果您确实需要内部的堆叠面板
(没有只有一个子节点的点),那么也可以向其添加HorizontalAlignment=“Stretch”
。这对垂直拉伸没有任何影响
就我个人而言,我会将包围内部网格的堆栈面板
转储,因为它没有增加任何价值。网格位于堆栈面板中的原因是什么?我用边框尝试了一下,效果非常好!即使使用堆栈面板上的HorizontalAlignment=“Stretch”和VerticalAlignment=“Stretch”,仍然会产生相同的问题。正如@Derek Beattie建议的那样,我将堆栈面板更改为边框,一切都很好。StackPanels关于堆栈,正如他们所说:)在您当前的设计中,您也不需要边框,只需要网格本身。是否有将其嵌套在另一个控件中的原因?