我有两个datagrids(数据网格1和2),它们是从一个单独的用户控件绑定的:
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<Grid Grid.Row="0" Grid.Column="0" >
<local:DATAGRID1 x:Name="DATAGRID1" /></Grid>
<Grid Grid.Row="1" Grid.Column="0">
<local:DATAGRID2 x:Name="DATAGRID2" /> </Grid>
<Grid Grid.Row="0" x:Name="AddURLContainer" Grid.Column="1" >
<StackPanel>
<local:test1 x:Name="NewQueryControl"/>
<local:test2 x:Name="AddURLControl" />
</StackPanel>
</Grid>
</Grid>
但由于某种原因,数据网格的延伸时间比窗口长,并且不会限制在窗口高度内。我试图将Datagrids放在滚动查看器中,但滚动条也会离开窗口并且没有约束。我无法弄清楚为什么这样做。 实际数据网格的开头标记是(并且它们包含在用户控件而不是Stackpannel中):
<DataGrid AutoGenerateColumns="False"
IsReadOnly="True"
SelectionMode="Single"
>
答案 0 :(得分:0)
为什么使用* width和heigt?
使用自动:
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
自动将大小设置为已分配的内容。
答案 1 :(得分:0)
如果我从以下位置更改上面的主网格行属性,似乎是固定的:
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
要:
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
奇怪的修复,但它确实有效。