4

グリッドスプリッターを使用してグリッド列のサイズを変更しながら、イベントを配置する必要があります。影響を受ける列で「sizeChanged」イベントを使用してみました。しかし、それは機能していません 方法を教えてください ありがとう

4

1 に答える 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>

1 つのコールバック PanelSizeChanged で必要なすべてのサイズ変更を管理します。もちろん、列ごとに異なるハンドラーを使用することもできます。

于 2011-06-17T21:22:08.033 に答える