WPF Grid: событие GridSplitter - PullRequest
       7

WPF Grid: событие GridSplitter

4 голосов
/ 13 апреля 2010

Мне нужно поместить событие при изменении размера столбцов сетки с помощью gridsplitter. Я попытался использовать событие sizeChanged для столбцов, на которые влияют. Но это не работает Подскажите пожалуйста как это сделать Спасибо

1 Ответ

2 голосов
/ 18 июня 2011

Я использую событие 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. Конечно, вы можете использовать разные обработчики для каждого столбца.

...