WPF网格:GridSplitter事件

4

我需要在使用网格分隔器调整网格列大小时添加事件。我尝试在受影响的列上使用“sizeChanged”事件,但它不起作用。请告诉我如何做。谢谢。


2
请问如何在WPF中处理GridSplitter生成的事件? 我有一个包含GridSplitter的Grid,当用户拖动GridSplitter时,我需要更新其他控件的大小。我该如何处理GridSplitter的DragDelta事件并更新其他控件的大小? - Benlitz
1个回答

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中处理所有需要改变大小的内容。当然,你也可以为每列使用不同的处理程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接