Mam dwie pozycje tabulacji w kontrolce zakładki i chcę nadać efekt przesuwania (animacja) podczas wybierania elementu z jednego elementu karty innego. Daj mi znać, jeśli ktoś ma jakiś pomysł, aby zrealizować tę animację. Z góry dzięki.Kontrola tabulatorów WPF: Efekt przesuwania na zaznaczeniu pozycji tabulatora
5
A
Odpowiedz
1
http://social.msdn.microsoft.com/Forums/en-AU/wpf/thread/ed8801d8-51c4-4671-8b8c-86544c6d434d ten jest pomocny i evergreen..i Używałem go jakiś czas temu
Wydaje się to być uaktualniona wersja http://blogs.intuidev.com/post/2010/01/26/TabControlStyling_PartTwo.aspx
i więcej na nie pewien co masz na myśli efekty przesuwne ?! jakieś przykłady dla mnie do zrozumienia
0
kodu 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>
związany kod:
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;
}
}
}
}
}
Powiązane problemy
- 1. WPF ListBox wyłączyć efekt hover
- 2. WPF kontrola dziedziczenia
- 3. Zachowanie tabulatorów w WebForms
- 4. Kontrola użytkownika WPF Rodzic
- 5. Jak wyrównać aktywne centrum tabulatora w Androidzie Układ zakładki przesuwania
- 6. Kontrola obrazu WPF z kliknięciem Event
- 7. Utrzymywanie elementów SVG na ustalonym rozmiarze podczas przesuwania pozycji
- 8. Efekt tekstowy Starwars w WPF
- 9. Kontrola Eksploratora Windows dla WPF?
- 10. Kontrola przeglądarki WPF vs WinForm
- 11. Caliburn.Micro i Telerik Kontrola WPF
- 12. Kontrola chmury tagów dla WPF
- 13. Okno przesuwania okna przeglądarki WPF Przewijanie ekranu?
- 14. Jak utworzyć efekt przeciągania i przesuwania z tej strony internetowej?
- 15. Kontrola UIPageViewController podczas przesuwania do tyłu lub do przodu
- 16. (WPF) Animate ListView przemieszczanie pozycji
- 17. Filtrowanie tabulatorów pod kątem
- 18. Jak uzyskać efekt ukrytego cienia w WPF
- 19. Kontrola użytkownika WPF rzuca wyjątek czasu projektowania
- 20. Wyrównanie pozycji nagłówka Groupbox WPF
- 21. WPF C strona kontrola # Użytkownik IsVisibleChanged wydarzenie
- 22. WPF ValidationRule Waliduj gdy kontrola jest ładowany
- 23. Która tabela/kontrola siatki w WPF?
- 24. Niestandardowa kontrola wpf nie została rozpoznana
- 25. Czy istnieje kontrola kreatora w WPF?
- 26. Etykieta narzędzia a wyskakujące okienko (kontrola WPF)
- 27. Efekt animacji Android efekt blasku na obrazie
- 28. C#: Nowe znaki linii i tabulatorów w ciągach znaków
- 29. Wykonywanie "base64 --decode" na zaznaczeniu w vim
- 30. Zapobieganie zaznaczeniu w HTML
Właściwie staram się dać efekt przesuwne do zawartości pozycji tabulatora. Powiedzmy, że tabitem jeden zawiera jeden stackpanel, a tabitem 2 zawiera kilka innych kontrolek, a jeśli wybiorę zakładkę 2, wówczas zawartość zakładki 2 powinna zostać wyświetlona w sposób ślizgowy. – prawin
byłoby pomocne, jeśli umieścisz tutaj kod, a następnie będę mógł go edytować. – JackyBoi