So, hier ein kleines Beispiel:
Hier die Definition des Fensters:
<Window x:Class="DotNetGui.FadeColumnsDemo.FormMain"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="400">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Orientation="Vertical">
<Button x:Name="FadeInCol1" Content="Fade In / Fade Out"/>
</StackPanel>
<StackPanel x:Name="Col1" Grid.Column="1" Width="150">
<TextBlock TextWrapping="Wrap">Text Text Text Text Text Text Text</TextBlock>
</StackPanel>
<StackPanel x:Name="Col2" Grid.Column="2" Width="0">
<TextBlock TextWrapping="Wrap">Text2 Text2 Text2 Text2 Text2 Text2 Text2</TextBlock>
</StackPanel>
</Grid>
</Window>Ganz simpel: 3 Spalten. In der ersten Spalte befindet sich ein Button, über den das Fade-In/Fade-Out angestoßen wird. Spalte 2 und 3 beinhalten jeweils ein StackPanel, welche je einen TextBlock enthalten.
Bei einem Klick auf den Button wird folgende Methode aufgerufen:
private void FadeIn()
{
Storyboard sb = new Storyboard();
DoubleAnimation animCol1 = new DoubleAnimation(Col1.ActualWidth, Col1.ActualWidth > 0 ? 0 : 150, new Duration(new TimeSpan(0, 0, 1)));
DoubleAnimation animCol2 = new DoubleAnimation(Col2.ActualWidth, Col2.ActualWidth > 0 ? 0 : 150, new Duration(new TimeSpan(0, 0, 1)));
sb.Children.Add(animCol1);
sb.Children.Add(animCol2);
Storyboard.SetTargetName(animCol1, Col1.Name);
Storyboard.SetTargetName(animCol2, Col2.Name);
Storyboard.SetTargetProperty(animCol1, new PropertyPath(StackPanel.WidthProperty));
Storyboard.SetTargetProperty(animCol2, new PropertyPath(StackPanel.WidthProperty));
sb.Begin(this);
}Diese erstellt ein Storyboard-Objekt und fügt zwei Animationen hinzu. Das war es dann auch schon wieder.
Natürlich musst du das an deine Bedürfnisse anpassen, stellt auch nur ein sehr sehr einfaches Beispiel dar, zeigt aber sicherlich die Vorgehensweise.