Другой способ подойти к этому - разместить расширитель там, где вам нужно, без заголовка или содержимого в самом расширителе.
Затем свяжите видимость вашего контент-элемента управления со свойством IsExpanded
экспандеров, используя BooleanToVisibilityConverter .
<StackPanel>
<StackPanel.Resources>
<BooleanToVisibilityConverter x:Key="boolToVisibility" />
</StackPanel.Resources>
<DockPanel>
<Expander DockPanel.Dock="Right" x:Name="rightAlignedExpander" />
<TextBlock Text="Expanders header" VerticalAlignment="Center" />
</DockPanel>
<Grid Visibility="{Binding IsExpanded, ElementName=rightAlignedExpander, Converter={StaticResource boolToVisibility}}">
<TextBlock Text="Expanders content"/>
</Grid>
</StackPanel>
Недостатком является то, что он не будет расширяться при щелчке по заголовку, но это может быть легко реализовано при необходимости.
Лично я думаю, что это проще и понятнее, чем полный рестайлинг шаблона элемента управления. Он также имеет дополнительное преимущество, заключающееся в том, что он сохраняет все стили, уже примененные к экспандеру, например, при использовании сторонних тем, таких как DevExpress или Telerik.