问题
I would like to have the Expander from question below (see the accepted answer) which is a perfect solution for me. I just want to have it on the right side.
Combine expander and grid (resizable expander)
To have it expanded from right to left I changed the settings for an analoguous behavior. (I emphasized elements to see better what's going on):
<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>
It resizes the area left from the splitter when I move the splitter to the right. I tried many other combinations but it almost resulted in the same unwanted behavior. The area left of the splitter is sometimes kind of weirdly exploding but TextBox remains unchanged.
回答1:
Try like this:
<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>
来源:https://stackoverflow.com/questions/8848329/put-resizable-expander-to-expand-from-right-to-left