Как программно увеличить ширину содержимого экспандера wpf? - PullRequest
1 голос
/ 27 марта 2020

У меня есть базовый c расширитель, который содержит одну сетку и один расширитель. Как я могу изменить ширину содержимого экспандера программно? Я много искал, но ничего полезного не нашел. Вот мой код:

 <Expander Header="Test" ExpandDirection="Left" HorizontalAlignment="Right" Background="LightBlue" Collapsed="VerticalExpander_OnCollapsed" Expanded="VerticalExpander_OnExpanded">

    <Grid x:Name="Grid">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="2"/>
                <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>
            <TextBlock Grid.Column="2" Text="Lorem ipsum dolor sit"/>
            <GridSplitter Grid.Column="1" Width="5" ResizeBehavior="PreviousAndNext" ResizeDirection="Columns"/>
        </Grid>

   private void VerticalExpander_OnExpanded(object sender, RoutedEventArgs e)
    {
        this.Grid.ColumnDefinitions[0].Width = new GridLength(300, GridUnitType.Pixel);
        this.Grid.ColumnDefinitions[2].Width = new GridLength(300, GridUnitType.Pixel);
    }

    private void VerticalExpander_OnCollapsed(object sender, RoutedEventArgs e)
    {

    }

Результат: enter image description here

Когда я расширяюсь, я хочу изменить ширину контента программно , Заранее спасибо!

1 Ответ

1 голос
/ 27 марта 2020

Если вы хотите переместить GridSplitter влево, вы можете увеличить Width третьего столбца, например:

this.Grid.ColumnDefinitions[2].Width = new GridLength(300, GridUnitType.Pixel);
...