我的网格布局格式有什么问题?

What is wrong with my grid layout formatting?

我的申请中有以下 window:

<Grid Width="{Binding ActualWidth, 
          RelativeSource = {RelativeSource AncestorType = {x:Type Window}}}" 
      Height="{Binding ActualHeight, 
          RelativeSource ={RelativeSource AncestorType = {x:Type Window}}}">
        <Grid.RowDefinitions>
            <RowDefinition Height="*"></RowDefinition>
            <RowDefinition Height="20"></RowDefinition>
        </Grid.RowDefinitions>
        <Grid Grid.Row="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        <Grid.ColumnDefinitions>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition Width="auto"></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <DataGrid Grid.Column="0" x:Name="dataGrid" VerticalAlignment="Stretch" CanUserAddRows="False" IsReadOnly="True"/>

        <DataGrid Grid.Column="2" x:Name="dataGrid2" VerticalAlignment="Stretch" CanUserAddRows="False" IsReadOnly="True"/>

        <GridSplitter Grid.Column="1" x:Name="gridSplitter" HorizontalAlignment="Center" VerticalAlignment="Stretch" Width="5"/>
    </Grid>
    <StatusBar Grid.Row="1" Height="20">
        <StatusBarItem x:Name="StatusBarInfo" Content="Offset:" HorizontalAlignment="Right" />
    </StatusBar>
</Grid>

在设计器视图中,一切都按预期显示,有两个 dataGrid,由 gridSplitter 分隔,状态栏位于屏幕底部。由于某些原因,当运行应用程序时,布局略有不同,包含dataGrid的网格与状态栏重叠。

这让我想起我在 Windows 上的显示设置 10 给我带来了问题。

这是我的第一个WPF应用程序,我还在学习中。

如果 dataGrid 中有任何数据,它可能会拉伸并重叠状态栏。如果这是问题所在,请尝试使用:

<ScrollViewer> (data grid here) </ScrollViewer>

也许设置根 GridWidthHeight 会阻止您实现目标。我相信默认情况下,如果不设置行高和列宽,网格将占据 Window 的 space 的其余部分 (*)。或者,您可以将其 VerticalAlignmentHorizontalAlignment 设置为 "Stretch"

,而不是设置第一个 Grid 的宽度和高度