2012-01-07 49 views

Respuesta

19

También puede configurar el FlowDirection en RightToLeft, pero eso puede causar otros problemas. Por ejemplo, también cambia la dirección del flujo del contenido del expansor, por lo que es posible que deba volver a establecerlo.

<Expander FlowDirection="RightToLeft"> 
    <StackPanel FlowDirection="LeftToRight"> 
    </StackPanel> 
</Expander> 
0

Otra manera de abordar esto es para colocar el expansor donde quiera, sin ningún tipo de cabecera o el contenido en el propio expansor. A continuación, vincule la visibilidad de su control de contenido a la propiedad de expansores IsExpanded, utilizando 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> 

El inconveniente es que no se ampliará cuando se haga clic en el encabezado, pero que podría implementarse fácilmente si es necesario.
Personalmente creo que esto es más simple y directo en lugar de rediseñar completamente la plantilla del control. También tiene el beneficio adicional de que mantendrá los estilos ya aplicados al expansor, por ejemplo, cuando se utilizan temas de terceros como DevExpress o Telerik.

Cuestiones relacionadas