【问题标题】:Grid splitter not working as expected WPF网格拆分器未按预期工作 WPF
【发布时间】:2020-05-26 07:08:10
【问题描述】:

这是我的示例代码。尝试运行它,但它没有按预期工作。 参考[图片][1] & [图片][2]

图片1:[1]:https://i.stack.imgur.com/MkDhl.png 图二:[1]:https://i.stack.imgur.com/ySUHS.png

根据图像 2:第 2 列未在切换单击时自行调整大小 请有人帮忙 提前致谢。

<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>

【问题讨论】:

  • CurrentAndNext 应该是 PreviousAndNext

标签: wpf grid splitter


【解决方案1】:

您错过了 Grid.ColumnDefinitions。 您必须将相应的列定义为Width="Auto"。

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

【讨论】:

    猜你喜欢
    • 2018-10-06
    • 2016-05-20
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多