答案 0 :(得分:5)
这是一个两个例子的答案。如果你真的想在StackPanel中使用TextBlocks,我已经证明了这一点。但是,如果您实际上正在寻找菜单,我也包含了该示例。两个例子都是相同的 - 只是获得动画更改的对象。
<DockPanel HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ClipToBounds="True">
<StackPanel Orientation="Horizontal" DockPanel.Dock="Top">
<TextBlock Text="FIRST" Margin="5" VerticalAlignment="Center" />
<TextBlock Text="SECOND" Margin="5" VerticalAlignment="Center" />
<TextBlock Text="THIRD" Margin="5" VerticalAlignment="Center" />
<TextBlock Text="FOURTH" Margin="5" VerticalAlignment="Center" />
<TextBlock Text="FIFTH" Margin="5" VerticalAlignment="Center" />
<StackPanel.RenderTransform>
<TranslateTransform x:Name="translateTransform"
X="{Binding Path=ActualWidth,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type DockPanel}}}" />
</StackPanel.RenderTransform>
<StackPanel.Triggers>
<EventTrigger RoutedEvent="StackPanel.Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="translateTransform"
Storyboard.TargetProperty="(TranslateTransform.X)"
To="0"
BeginTime="0:0:0.5"
AutoReverse="False"
Duration="0:0:2.5" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</StackPanel.Triggers>
</StackPanel>
<Menu DockPanel.Dock="Top">
<MenuItem Header="First" />
<MenuItem Header="Second" />
<MenuItem Header="Third" />
<MenuItem Header="Fourth" />
<MenuItem Header="Fifth" />
<Menu.RenderTransform>
<TranslateTransform x:Name="translateTransform2"
X="{Binding Path=ActualWidth,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type DockPanel}}}" />
</Menu.RenderTransform>
<Menu.Triggers>
<EventTrigger RoutedEvent="Menu.Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="translateTransform2"
Storyboard.TargetProperty="(TranslateTransform.X)"
To="0"
BeginTime="0:0:3.5"
AutoReverse="False"
Duration="0:0:2.5" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Menu.Triggers>
</Menu>
<Grid>
<TextBlock FontSize="25"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="Content Goes Here" />
</Grid>
</DockPanel>