网格没有拉伸整个dockpanel

时间:2012-02-03 15:56:47

标签: wpf xaml layout user-controls grid

我有一个问题是网格(用户列表)没有垂直延伸到停靠面板的整个可用空间。

我的简化网格位于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。 网格水平拉伸但不垂直拉伸。为什么?

2 个答案:

答案 0 :(得分:0)

您可能只需要在LastChildFill上指定TrueDockPanel即可。否则,DataGrid可能不会调整大小,因为它不是为了占用所有可用的垂直空间而设计的。

在后一种情况下,你可以这样做:

<DataGrid>
    <DataGrid.ItemsPanel>
        <ItemsPanelTemplate>
            <Grid />
        </ItemsPanelTemplate>
    </DataGrid.ItemsPanel>
</DataGrid>

答案 1 :(得分:0)

找到它。我的错。所有我的xaml代码背后的高度= 30。真不好运!以复制/粘贴开始。谢谢你们的贡献!