2010-04-06 24 views
5

Hola, me preguntaba si es posible alinear el botón de alternar en un control de expansión WPF al extremo derecho.Cómo alinear el botón de control de WPF Expander

+0

¿Por qué tienes que hacer un proceso tan largo cuando hay un proceso simple aquí en el enlace proporcionado a continuación. http://stackoverflow.com/questions/9288342/how-to-put-wpf-expander-toggle-button-on-right –

Respuesta

14

Con WPF todo es posible. ;) Lamentablemente no todas las cosas son simples. Su mejor apuesta aquí es volver a crear la plantilla del expansor. Comience copiando la plantilla predeterminada Expander, que se encuentra here.

A continuación, encuentre el Grid que contiene 2 columnas, una que contiene un ToggleButton y la otra que contiene un ContentPresenter. Cambie las columnas para que el alternar esté en la columna 1. Luego cambie los tamaños de definición de columna para que la primera columna tenga el tamaño de estrella y la segunda el tamaño 20. Cuando termine, debe tener un trozo en la plantilla que se vea así:

<Grid> 
    <Grid.ColumnDefinitions> 
    <ColumnDefinition Width="*" /> 
    <ColumnDefinition Width="20" /> 
    </Grid.ColumnDefinitions> 
    <ToggleButton Grid.Column="1" 
     IsChecked="{Binding Path=IsExpanded,Mode=TwoWay, 
     RelativeSource={RelativeSource TemplatedParent}}" 
     OverridesDefaultStyle="True" 
     Template="{StaticResource ExpanderToggleButton}" 
     Background="{StaticResource NormalBrush}" /> 
    <ContentPresenter Margin="4" 
     ContentSource="Header" 
     RecognizesAccessKey="True" /> 
</Grid> 

Continúe modificando la plantilla hasta que obtenga la apariencia que necesita.

EDIT: La plantilla que se proporciona en MSDN es una versión escueta de la plantilla de expansión "real". Si desea la plantilla de expansión estilizada, use Expression Blend y copie la plantilla de control existente en Expander.

Cuestiones relacionadas