wpf panel collapsiblepanelextender

Cómo crear un panel plegable en WPF



collapsiblepanelextender (2)

El control de Expander puede ser lo que buscas. Desde MSDN :

Clase expansora

Representa el control que muestra un encabezado que tiene una ventana plegable que muestra contenido.

Estoy creando una aplicación para Windows (WPF) y C #. En mi opinión, tengo que agregar algunos diseños como navegar por una carpeta, mostrar los archivos en la carpeta en una vista de lista ... etc

Mi requerimiento es: Los paneles mencionados anteriormente deberían ser paneles plegables, supongo, no tenemos opción de panel plegable en wpf.

¿Tengo que crear un control personalizado para esto? Si es así, por favor sugiéreme cómo hacer esto?


Me puede gustar esto?

<Grid> <Grid.RowDefinitions> <RowDefinition Height="auto"/> <RowDefinition Height="2*"/> </Grid.RowDefinitions> <Border Background="Red" Height="12" VerticalAlignment="Top" MouseEnter="StackPanel_MouseEnter" MouseLeave="StackPanel_MouseLeave"></Border> </Grid>

Código C # detrás

private void StackPanel_MouseEnter(object sender, MouseEventArgs e) { Border sp = sender as Border; DoubleAnimation db = new DoubleAnimation(); //db.From = 12; db.To = 150; db.Duration = TimeSpan.FromSeconds(0.5); db.AutoReverse = false; db.RepeatBehavior = new RepeatBehavior(1); sp.BeginAnimation(StackPanel.HeightProperty, db); } private void StackPanel_MouseLeave(object sender, MouseEventArgs e) { Border sp = sender as Border; DoubleAnimation db = new DoubleAnimation(); //db.From = 12; db.To = 12; db.Duration = TimeSpan.FromSeconds(0.5); db.AutoReverse = false; db.RepeatBehavior = new RepeatBehavior(1); sp.BeginAnimation(StackPanel.HeightProperty, db); } }

Puedes usar cualquier elemento de control como grilla, pila, base, borde ...