Tengo dos elementos de pestañas en el control de pestañas y quiero dar efectos deslizantes (Animación) mientras selecciono un elemento de pestañas de otro. Avísame si alguien tiene alguna idea para lograr esta animación. Gracias de antemano.WPF Tabcontrol: efecto deslizante en la selección de elementos de pestañas
5
A
Respuesta
1
http://social.msdn.microsoft.com/Forums/en-AU/wpf/thread/ed8801d8-51c4-4671-8b8c-86544c6d434d esto es útil y evergreen..i lo han utilizado desde hace tiempo atrás
Ésta parece ser la versión actualizada http://blogs.intuidev.com/post/2010/01/26/TabControlStyling_PartTwo.aspx
y más sobre no está seguro de lo que entiende por efectos de deslizamiento ?! ningún ejemplo para mí entender
0
código XAML:
<Window x:Class="TabControlAnimation.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" WindowState="Maximized">
<Grid HorizontalAlignment="Center" Name="maingrid">
<Grid.Resources>
<DataTemplate x:Key="TabTemplate">
<Grid Name="gd">
<ContentControl Content="{Binding}"></ContentControl>
</Grid>
</DataTemplate>
</Grid.Resources>
<StackPanel Orientation="Horizontal">
<TabControl ContentTemplate="{StaticResource TabTemplate}" Name="_menuTabControl" TabStripPlacement="Top" Width="auto" Height="{Binding ElementName=maingrid, Path=Height}" SelectionChanged="_menuTabControl_SelectionChanged">
<TabItem Header="MyTabItem1">
<Grid Background="Red">
<TextBlock Text="This is tab1"></TextBlock>
</Grid>
</TabItem>
<TabItem Header="MyTabItem2">
<Grid Background="Green">
<TextBlock Text="This is tab2"></TextBlock>
</Grid>
</TabItem>
<TabItem Header="MyTabItem3">
<Grid Background="Yellow">
<TextBlock Text="This is tab3"></TextBlock>
</Grid>
</TabItem>
<TabItem Header="MyTabItem4">
<Grid Background="Violet">
<TextBlock Text="This is tab4"></TextBlock>
</Grid>
</TabItem>
<TabItem Header="MyTabItem5">
<Grid Background="Blue">
<TextBlock Text="This is tab5"></TextBlock>
</Grid>
</TabItem>
</TabControl>
</StackPanel>
</Grid>
código subyacente:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj) where T:DependencyObject
{
if(depObj!=null)
{
for(int i=0;i<VisualTreeHelper.GetChildrenCount(depObj);i++)
{
DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
if (child != null && child is T)
yield return (T)child;
foreach (T childOfChild in FindVisualChildren<T>(child))
yield return childOfChild;
}
}
}
int prev = -1, curr = -1;
private void _menuTabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
curr = (sender as TabControl).SelectedIndex;
if(prev!=curr)
{
foreach(var rectangle in FindVisualChildren<Grid>(this))
{
if(rectangle.Name=="gd")
{
DoubleAnimation translate_x=null;
if(prev>curr)
{
translate_x = new DoubleAnimation()
{
From = -300,
To = 0,
Duration = TimeSpan.FromSeconds(0.3),
};
}
else
{
translate_x = new DoubleAnimation()
{
From = 300,
To = 0,
Duration = TimeSpan.FromSeconds(0.3),
};
}
var translate_y = new DoubleAnimation()
{
From = 0,
To = 0,
Duration = TimeSpan.FromSeconds(1),
};
TranslateTransform translateTransform1 = new TranslateTransform();
translateTransform1.BeginAnimation(TranslateTransform.XProperty, translate_x);
translateTransform1.BeginAnimation(TranslateTransform.YProperty, translate_y);
rectangle.RenderTransform = translateTransform1;
prev = curr;
}
}
}
}
}
Cuestiones relacionadas
- 1. Reordenar pestañas en WPF TabControl
- 2. pestañas en la parte inferior de TabControl
- 3. WPF multilínea TabControl sin reorganizar filas
- 4. WPF tabcontrol styling
- 5. TabControl Cancelar cambio de pestañas
- 6. WPF: Centro TabItems en un TabControl
- 7. WPF TabControl personalizado
- 8. En el TabControl de WPF, ¿puedo agregar contenido junto a los encabezados de las pestañas?
- 9. WPF: TabControl & DataTemplates
- 10. WPF TabControl y DataTemplates
- 11. WPF TabControl Databinding
- 12. jquery complemento ordenable con "efecto deslizante"?
- 13. Pestañas en el lado derecho e izquierdo de TabControl C#
- 14. WPF TabControl Cambiar la pestaña seleccionada
- 15. barra de pestañas deslizante como en el mercado de Android
- 16. WPF TabControl - ¿Cómo evitar la descarga en el cambio de pestaña?
- 17. Iconos en TabControl C# - ¿Cómo?
- 18. Tabulaciones de posición de WPF TabControl en la esquina superior derecha
- 19. Cómo vincular elementos de un TabControl a una colección observable en wpf?
- 20. Cómo crear pestañas trapezoidales en el control de pestañas WPF
- 21. WPF ListBoxItem problema de selección
- 22. Separación de control de pestañas WPF entre los encabezados
- 23. Desactivar efecto de selección al seleccionar UITableViewCell
- 24. Efecto texto de Starwars en WPF
- 25. WPF TabControl ¿Cómo cambiar la pestaña con el mouse hacia arriba en lugar de hacia abajo?
- 26. Efecto de brillo interior en WPF
- 27. Estilos WPF para TabControl/TabPanel/TabItem
- 28. ¿Cómo puedo agregar contenido adicional a un WPF TabControl?
- 29. WPF Color de selección ListBox
- 30. WPF TabControl En SelectionChanged, establezca el foco en un campo de texto
En realidad, estoy tratando de dar efecto deslizante al contenido de elemento de ficha. Digamos, tabitem uno contiene un stackpanel y tabitem 2 contiene algunos otros controles, entonces si selecciono tab 2 entonces el contenido de tab 2 debería mostrarse de manera deslizante. – prawin
sería útil si publica un código aquí, entonces puedo editarlo para usted .. – JackyBoi