C# 如何将GridSplitter设置为;snap";进入另一个元素?

C# 如何将GridSplitter设置为;snap";进入另一个元素?,c#,.net,wpf,C#,.net,Wpf,我有一个数据网格和一个网格拆分器: 拆分器位于底部,数据网格位于顶部,两者之间有一些空白 我认为如果网格拆分器与数据网格的距离小于等于24个单元,那么它就可以很好地工作。这可以存档吗?我使用以下命令按数据网格行进行快照: private void GridSplitterDragCompleted(object sender, DragCompletedEventArgs e) { // We want the grid splitter to snap in grid of 24 u

我有一个数据网格和一个网格拆分器:

拆分器位于底部,数据网格位于顶部,两者之间有一些空白


我认为如果网格拆分器与数据网格的距离小于等于24个单元,那么它就可以很好地工作。这可以存档吗?

我使用以下命令按数据网格行进行快照:

private void GridSplitterDragCompleted(object sender, DragCompletedEventArgs e)
{
    // We want the grid splitter to snap in grid of 24 units.
    var excess = (int) FooDataGridRowDefinition.Height.Value % 24;

    if (excess == 0)
        return;

    FooDataGridRowDefinition.Height = new GridLength(FooDataGridRowDefinition.Height.Value - excess);
}
数据网格行对我来说都是24行,我想我可以动态地获取它们,但现在就可以了

XAML:



可能是因为行高不固定在24像素。它甚至可能因行而异-更准确地说,您应该要求
GridSplitter
捕捉到行。行高度固定为24个单位(1/96)。这不是问题,我只需要“按网格调整大小”或捕捉。想知道是否有网格单元的SizeChanged事件-可能没有。。。
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="Auto" Name="FooDataGridRowDefinition" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <DataGrid Grid.Row="0" />

    <GridSplitter Grid.Row="1" DragCompleted="GridSplitterDragCompleted" />

    <Foo Grid.Row="2" />
</Grid>