Не уверен, что вы пытаетесь достичь, но я думаю, что концептуально Grid
должен быть частью Expander.Content
, будет ли это работать для вас?
<Expander Header="Test" ExpandDirection="Right" HorizontalAlignment="Left" Background="LightBlue">
<Expander.Content>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="5"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Lorem ipsum dolor sit"/>
<GridSplitter Grid.Column="1" Width="5" ResizeBehavior="PreviousAndCurrent" ResizeDirection="Columns"/>
</Grid>
</Expander.Content>
</Expander>
Редактировать: Удалены все триггеры из первого столбца, поскольку это казалось ненужным.
Кроме того: для вертикальной работы GridSplitter HorizontalAlignment
должен быть установлен на Stretch
, иначе он будет иметь нулевую ширину по умолчанию (конечно, все остальное, что зависит от ориентации, должно быть адаптировано как хорошо, но это просто)
HorizontalAlignment - это средство доступа к свойствам Microsoft .NET, которое на самом деле является свойством зависимости. Это частное свойство зависимости довольно часто имеет видимое значение «по умолчанию», устанавливаемое по-разному в подклассах элементов, в частности элементов управления. [...] Например, очевидное «значение по умолчанию» для HorizontalAlignment для элемента управления «Метка» будет иметь значение «Левый», даже если «Метка» наследует объект HorizontalAlignment непосредственно от FrameworkElement. Это связано с тем, что это значение было сброшено в стиле метки по умолчанию в шаблоне элемента управления стиля.