网格分割器不能如期工作WPF

问题描述 投票:0回答:1

这是我的示例代码。试着运行它,但它并没有像预期的那样工作.参考[图片][1] & [图片][2]

图片1:【1】。https:/i.stack.imgur.comMkDhl.png图片2:【1】。https:/i.stack.imgur.comySUHS.png

根据图片2:Column 2在点击切换时没有自动调整大小,请大家帮忙解决这个问题Thanks in advance。

<Window.Resources>
    <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
</Window.Resources>
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="40" />
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="5"/>
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <Border Grid.Column="0" Background="Green">
        <ToggleButton x:Name="toggleButton"
                      Width="30"
                      Height="30"
                      Margin="0,10,10,0"
                      HorizontalAlignment="Left"
                      VerticalAlignment="Top"
                      IsChecked="True" />
    </Border>
    <Grid Grid.Column="1"
          Visibility="{Binding ElementName=toggleButton, Path=IsChecked, Converter={StaticResource BooleanToVisibilityConverter}}">
        <WrapPanel Background="Aqua">
            <TextBlock Margin="8" Text="Item 01" />
            <TextBlock Margin="8" Text="Item 02" />
            <TextBlock Margin="8" Text="Item 03" />
            <TextBlock Margin="8" Text="Item 04" />
            <TextBlock Margin="8" Text="Item 05" />
        </WrapPanel>
    </Grid>
    <GridSplitter Width="5"
                  ResizeBehavior="CurrentAndNext"
                  Grid.Column="1"
                  Visibility="{Binding ElementName=toggleButton, Path=IsChecked, Converter={StaticResource BooleanToVisibilityConverter}}" />

    <Grid Grid.Column="3"
          HorizontalAlignment="Stretch"
          VerticalAlignment="Stretch"
          Background="Yellow">
        <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"
                   Text="Column 2" />
    </Grid>
</Grid>
wpf grid splitter
1个回答
0
投票

你漏掉了Grid.ColumnDefinitions.你必须将相应的列定义为 Width="Auto".

BooleanToVisibilityConverter只有在IsChecked=false时才会隐藏,这意味着空间仍然存在。写自己的BooleanToVisibilityConverter,当传入的bool为false时,设置Visibility.Collapsed。

© www.soinside.com 2019 - 2024. All rights reserved.