Разделитель сетки не работает должным образом WPF - PullRequest
0 голосов
/ 26 мая 2020

Вот мой пример кода. Пытался запустить его, но он не работает должным образом. См. [Изображение] [1] и [Изображение] [2]

Изображение 1: [1]: https://i.stack.imgur.com/MkDhl.png Изображение 2: [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>

1 Ответ

0 голосов
/ 26 мая 2020

Вы пропустили Grid.ColumnDefinitions. Вам нужно будет определить соответствующий столбец как Width="Auto".

BooleanToVisibilityConverter скрывается только тогда, когда IsChecked = false, что означает, что пространство остается. Напишите свой собственный BooleanToVisibilityConverter, чтобы установить Visibility.Collapsed, когда входящий bool имеет значение false.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...