Поместите изменяемый размер Expander для расширения справа налево - PullRequest
5 голосов
/ 13 января 2012

Я хотел бы получить расширитель из приведенного ниже вопроса (см. Принятый ответ), который является для меня идеальным решением. Я просто хочу, чтобы это было справа.

Объединение экспандера и сетки (экспандер с изменяемым размером)

Чтобы развернуть его справа налево, я изменил настройки для аналогичного поведения. (Я подчеркнул элементы, чтобы лучше видеть, что происходит):

<Expander Grid.Column="1" Header="Test" ExpandDirection="Left" 
        BorderThickness="10" BorderBrush="Black" HorizontalAlignment="Right" >
  <Expander.Content>
    <Grid >
       <Grid.ColumnDefinitions>
         <ColumnDefinition Width="Auto"/>
         <ColumnDefinition Width="Auto" />
       </Grid.ColumnDefinitions>
       <GridSplitter Grid.Column="0" Width="10" Background="Green" 
                  ResizeDirection="Columns" ResizeBehavior="CurrentAndNext" />
       <TextBox Grid.Column="1" Text="Lorem ipsum dolor sit" 
             BorderThickness="10" BorderBrush="Red"/>
    </Grid>
  </Expander.Content>
</Expander>

Изменение размера области слева от разделителя, когда я перемещаю разделитель вправо. Я пробовал много других комбинаций, но это почти привело к тому же нежелательному поведению. Область слева от сплиттера иногда выглядит странно, но TextBox остается неизменным.

1 Ответ

9 голосов
/ 13 января 2012

Попробуй так:

<Expander Grid.Column="1" Header="Test" ExpandDirection="Left"
    BorderThickness="10" BorderBrush="Black" HorizontalAlignment="Right">
  <Expander.Content>
    <Grid>
       <Grid.ColumnDefinitions>
         <ColumnDefinition Width="*" MinWidth="10" />
         <ColumnDefinition Width="Auto" />
       </Grid.ColumnDefinitions>
       <GridSplitter Grid.Column="0" Width="10" Background="Green"
                  ResizeDirection="Columns" ResizeBehavior="CurrentAndNext" />
       <TextBox Grid.Column="1" Text="Lorem ipsum dolor sit"
             BorderThickness="10" BorderBrush="Red"/>
    </Grid>
  </Expander.Content>
</Expander>
...