Поместите расширитель с изменяемым размером, чтобы расширить справа налево

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

Объединить расширитель и сетку (расширитель с изменяемым размером)

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

<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 остается неизменным.


person T.Sol    schedule 13.01.2012    source источник
comment
Что происходит, когда вы используете PreviousAndCurrent как ResizeBehavior?   -  person Daniel Hilgarth    schedule 13.01.2012
comment
не очень ясный вопрос, попробуйте поставить несколько изображений, чтобы показать, что вы хотите, плз   -  person Arsen Mkrtchyan    schedule 13.01.2012
comment
Я могу добавлять изображения только после 10 повторений. точки.... Обычно левый край расширителя перемещается, но текстовое поле и разделитель остаются. @Daniel: С этой настройкой он просто не изменяет размер.   -  person T.Sol    schedule 13.01.2012


Ответы (1)


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

<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>
person ShadeOfGrey    schedule 13.01.2012
comment
Здорово! Я бы не подумал, что это ширина звезды в столбце разделителя. В предыдущем вопросе столбец сетки имел фиксированную ширину. Мне все еще любопытно, почему это не работает здесь - person T.Sol; 13.01.2012