2010-04-13 5 views
4

GridSplitter를 사용하여 그리드 열의 크기를 조정하는 동안 이벤트를 넣어야합니다. 영향을받는 열에서 'sizeChanged'이벤트를 사용해 보았습니다. 하지만 그 작동하지 않습니다 그 방법을 말해주십시오 감사합니다WPF Grid : GridSplitter 이벤트

+2

중복 된 항목 : http://stackoverflow.com/questions/6711162/how-to-handle-events-generated-by-grid-splitter-in-wpf/22495586#22495586 – Benlitz

답변

2

나는 열 내의 내용에 SizeChanged 이벤트를 사용합니다.

<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition x:Name="leftColumn" MinWidth="268" Width="268*"/> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition x:Name="centerColumn" MinWidth="327" Width="327*"/> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition x:Name="rightColumn" MinWidth="393" Width="393*"/> 
    </Grid.ColumnDefinitions> 
    <custom:Control x:Name="panel1" Grid.Column="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,0,0,5" SizeChanged="PanelSizeChanged"/> 
    <GridSplitter Grid.Column="1" Background="#00000000" HorizontalAlignment="Center" VerticalAlignment="Stretch" ResizeBehavior="PreviousAndNext" Width="5" ResizeDirection="Columns"/> 
    <custom:Control x:Name="panel2" Grid.Column="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,0,0,5" SizeChanged="PanelSizeChanged"/> 
    <GridSplitter Grid.Column="3" Background="#00000000" HorizontalAlignment="Center" VerticalAlignment="Stretch" ResizeBehavior="PreviousAndNext" Width="5" ResizeDirection="Columns"/> 
    <custom:Control x:Name="panel2" Grid.Column="4" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,0,0,5" SizeChanged="PanelSizeChanged"/> 
</Grid> 

나는 하나의 콜백 PanelSizeChanged에서 필요한 모든 크기 변경 사항을 관리합니다. 물론 각 열에 다른 핸들러를 사용할 수 있습니다.