2012-07-03 34 views
0

我有一個數據網格,網格分路器:如何讓GridSplitter「捕捉」到另一個元素中?

enter image description here

分離器是在底部和頂部的數據網格,並且在兩者之間的一些空白。

我認爲它可以正常工作,如果網格分離器捕捉到數據網格中,如果它距離數據網格不到24個單元。這可能存檔嗎?

+0

可能是行高度不固定在24個像素。它甚至可能因行而異 - 更確切地說,您應該要求'GridSplitter'對齊行。 –

+0

行高度固定爲24個單位(1/96)。這不是問題,我只需要這個「每個網格調整大小」或捕捉。 – Tower

+0

想知道是否有GridCells的SizeChanged事件 - 可能不是... – Charleh

回答

1

我得到了它的每個數據網格行搭扣,這樣的:

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>