我有一个问题是网格(用户列表)没有垂直延伸到停靠面板的整个可用空间。
我的简化网格位于UserControl中:
<Grid Name="MainGrid" Background="Black">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<DataGrid Name="UserDataGrid" ItemsSource="{Binding UsersProfiles, Mode=OneWay}"
AutoGenerateColumns="False" Margin="5" Grid.Row="0">
<DataGrid.Columns>
<DataGridTextColumn Header="User Id" Binding="{Binding UserIdentifier}"
Width="100" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
我的窗口很简单:
<DockPanel Background="Yellow">
<ContentControl Content="{Binding UserView}" Background="Red"/>
</DockPanel>
主窗口后面的ViewModel通过UserView正确返回userControl。 网格水平拉伸但不垂直拉伸。为什么?
答案 0 :(得分:0)
您可能只需要在LastChildFill
上指定True
到DockPanel
即可。否则,DataGrid
可能不会调整大小,因为它不是为了占用所有可用的垂直空间而设计的。
在后一种情况下,你可以这样做:
<DataGrid>
<DataGrid.ItemsPanel>
<ItemsPanelTemplate>
<Grid />
</ItemsPanelTemplate>
</DataGrid.ItemsPanel>
</DataGrid>
答案 1 :(得分:0)
找到它。我的错。所有我的xaml代码背后的高度= 30。真不好运!以复制/粘贴开始。谢谢你们的贡献!