データグリッドとグリッドスプリッターがあります。
スプリッターは下部にあり、データグリッドは上部にあり、2つの間に空きスペースがあります。
グリッドスプリッターがデータグリッドから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:
<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>